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()


相关文章
|
2月前
|
测试技术 Linux
Linux(8)Debain系统测试EC25-EUX模块usbnet0(qmi qcm)问题点
Linux(8)Debain系统测试EC25-EUX模块usbnet0(qmi qcm)问题点
91 0
|
2月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
71 0
|
2月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
【Shell 命令集合 系统设置 】⭐Linux 卸载已加载的内核模块rmmod命令 使用指南
65 1
|
2月前
|
存储 Linux Shell
【Shell 命令集合 系统设置 】Linux 获取指定模块的元信息 minfo命令 使用指南
【Shell 命令集合 系统设置 】Linux 获取指定模块的元信息 minfo命令 使用指南
42 0
|
2月前
|
Linux Shell 文件存储
【Shell 命令集合 系统设置 】Linux 加载和卸载内核模块 modprobe命令 使用指南
【Shell 命令集合 系统设置 】Linux 加载和卸载内核模块 modprobe命令 使用指南
76 1
|
14天前
|
存储 安全 Linux
深入解析Linux命令p11-kit:PKCS#11模块的协调器
**p11-kit详解:连接PKCS#11模块的桥梁** p11-kit是Linux下管理PKCS#11加密设备的库,它提供统一接口,简化与智能卡、HSM等的交互。用于密码学开发、系统集成及云服务,支持动态加载模块,通过API简化编程。安装时注意依赖,选择合适方式,关注版本兼容性,并通过文档和测试确保稳定。代码示例展示如何加载和卸载PKCS#11模块。
|
20天前
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。
|
5天前
|
运维 Linux 应用服务中间件
Linux之自动化运维工具ansible、ansible模块(2)
Linux之自动化运维工具ansible、ansible模块(2)
|
5天前
|
运维 Linux Shell
Linux之自动化运维工具ansible、ansible模块(1)
Linux之自动化运维工具ansible、ansible模块(1)
|
2月前
|
Linux
探索Linux操作系统的内核模块
本文将深入探讨Linux操作系统的核心组成部分——内核模块,揭示其背后的工作机制和实现方式。我们将从内核模块的定义开始,逐步解析其加载、卸载以及与操作系统其他部分的交互过程,最后探讨内核模块在系统性能优化中的关键作用。