paramiko——一个专门为Linux设计的模块

简介: paramiko——一个专门为Linux设计的模块

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,下面我们就来看看如何去使用paramiko模块吧。


安装模块

pip install paramiko

640.jpg

安装结束之后我们就可以来使用这个模块了


使用模块

import paramiko
#连接三要素,主机,用户名,密码
host = '47.95.204.151'
username ='root'
password ='666666666'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, 22, username, password)
stdin, stdout, stderr = ssh.exec_command('df -hT')
print(stdout.read().decode('utf-8')) 
ssh.close()

可以对文件基本的操作,创建,修改,删除:

t=paramiko.Transport((host,port))
t.connect(username=username,password=password)
sftp = paramiko.SFTPClient.from_transport(t)
#创建目录    
sftp.mkdir("/home/userdir", 0755)
#删除目录    
sftp.rmdir("/home/userdir")
#文件重命名    
sftp.rename("/home/test.sh", "/home/testfile.sh")
#打印文件信息    
print (sftp.stat("/home/testfile.sh"))
#打印目录列表    
print (sftp.listdir("/home"))


其他方法:


640.png

640.png

都是用来远程对文件进行操作的。


其中两个方法put和get我们来细看一下。


关于put,它是用来上传文件的,我们可以使用put将我们需要上传的文件,传到服务器中,这样就可以提高很多效率。上传是需要指定上传文件和上传地址。

sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('log.log','/tmp/log.log')

同样的,关于get,用来下载文件的方法,我们只需要指明我们需要下载的文件和下载地址就可以了:

sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('/tmp/log.log', 'log3.log')


例如,我们现在要上传信息到server:


import paramiko
pravie_key_path = '/root/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
t = paramiko.Transport(('172.16.0.19', 22))
t.connect(username='root', pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put('log.log','/tmp/log.log')
t.close()



我们现在要下载服务器的log信息:

import paramiko
pravie_key_path = '/root/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
t = paramiko.Transport(('172.16.0.19', 22))
t.connect(username='root', pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get('/tmp/log.log', 'log3.log')
t.close()


如果我们只想执行一些口令,可以用exec_command方法:

stdin, stdout, stderr = ssh.exec_command("cd  /usr/local;mkdir yuqing;ls -ll")
print stdout.readlines()

多个操作直接采用分号隔开即可。



最后说一下,任何操作完都要将连接关闭:

ssh.close()


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
8月前
|
测试技术 Linux
Linux(8)Debain系统测试EC25-EUX模块usbnet0(qmi qcm)问题点
Linux(8)Debain系统测试EC25-EUX模块usbnet0(qmi qcm)问题点
234 0
|
3月前
|
安全 Linux 网络安全
Linux环境中安装和使用Paramiko
Linux环境中安装和使用Paramiko
190 12
|
4月前
|
Unix Linux 网络安全
python中连接linux好用的模块paramiko(附带案例)
该文章详细介绍了如何使用Python的Paramiko模块来连接Linux服务器,包括安装配置及通过密码或密钥进行身份验证的示例。
174 1
|
4月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
106 0
|
5月前
|
NoSQL Linux Android开发
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
本文介绍了如何在QEMU中挂载虚拟分区、创建和编译简单的Linux内核模块,并在QEMU虚拟机中加载和测试这些内核模块,包括创建虚拟分区、编写内核模块代码、编译、部署以及在QEMU中的加载和测试过程。
264 0
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
|
5月前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
5月前
|
安全 Linux 开发者
在Linux中,内核模块是什么以及如何加载和卸载它们?
在Linux中,内核模块是什么以及如何加载和卸载它们?
|
5月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作
|
5月前
|
Linux
Linux源码阅读笔记19-插入删除模块实战
Linux源码阅读笔记19-插入删除模块实战
|
5月前
|
Ubuntu Linux 开发工具
深入探索Linux内核模块编程
【8月更文挑战第4天】在这篇文章中,我们不仅将探讨Linux内核模块的基础知识,还将通过一个实际的例子来展示如何编写一个简单的内核模块。我们将从理论出发,逐步过渡到动手实践,最终实现一个可以在Linux系统上运行的模块。文章的目标是为读者提供足够的信息和知识,以便他们能够自己编写内核模块,从而对操作系统的内部工作原理有更深入的了解。

热门文章

最新文章