前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python模块之paramiko学习<

python模块之paramiko学习<

作者头像
py3study
发布2020-01-09 16:49:46
5920
发布2020-01-09 16:49:46
举报
文章被收录于专栏:python3

简介: paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。 安装所需软件包: http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.5.tar.gz http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz tar zxvf pycrypto-2.5.tar.gz cd pycrypto-2.5 python setup.py build python setup.py install tar zxvf paramiko-1.7.7.1.tar.gz cd paramiko-1.7.7.1 python setup.py build python setup.py install python脚本简单编写: 管理单台服务器: 脚本一:查询172.16.22.23磁盘使用情况

代码语言:javascript
复制
#!/ usr / bin / python 
进口 paramiko 
hostname = '172.16.22.23' 
端口= 22 
username = 'root' 
密码= 'larryroot' 
如果 __name __ == “ __main__” : 
        s = paramiko.SSHClient() 
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        s.connect(主机名,端口,用户名,密码) 
        stdin,stdout,sterr = s.exec_command('df -Th' ) 
        打印 stdout.read() 
        s.close() 

脚本二:在远程服务器上执行相应命令

代码语言:javascript
复制
#!/ usr / bin / python 
#by拉里 
#2011/01/30 
导入 系统 
进口 paramiko 
 
hostname = sys.argv [ 1 ] 
命令=  “” .join(sys.argv [ 2 :]) 
端口= 22 
username = 'root' 
密码= 'larryroot' 
如果 __name __ == “ __main__” : 
        s = paramiko.SSHClient() 
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        s.connect(主机名,端口,用户名,密码) 
        stdin,stdout,sterr = s.exec_command(命令) 
        打印 stdout.read() 
        s.close()

使用方法: python single1.py  ip地址   命令 [root@localhost ~]# python single1.py  172.16.22.23 df -TH Filesystem    Type     Size   Used  Avail Use% Mounted on /dev/sda2     ext3      13G   6.0G   5.7G  52% / /dev/sda1     ext3     104M    12M    87M  13% /boot tmpfs        tmpfs      61M      0    61M   0% /dev/shm /dev/sda4     ext3     7.6G   465M   6.8G   7% /data /dev/sdb1     ext3      32G   5.9G    25G  20% /autocd [root@localhost ~]# python single1.py  172.16.22.23 free -m              total       used       free     shared    buffers     cached Mem:           114        112          2          0         26         35 -/+ buffers/cache:         50         64 Swap:         1027          0       1027

脚本三:管理多台服务器:批量查询ip列表中对应服务器的磁盘使用情况

代码语言:javascript
复制
#!/ usr / bin / python 
#by拉里 
#2011/01/30 
进口 paramiko 
端口= 22 
username = 'root' 
file = open('ip.list' ) 
对于 行  中的 文件: 
        hostname = str(line.split('\ t' )[ 1 ]) 
        password = str(line.split('\ t' )[ 4 ])。strip() 
        打印“ #########################” ,主机名,“ ################## #######“  
        s = paramiko.SSHClient() 
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        s.connect(主机名,端口,用户名,密码) 
        stdin,stdout,sterr = s.exec_command('df -Th' ) 
        打印 stdout.read() 
        s.close() 
file.close() 

用法: [root@localhost ~]# python ssh.py ############################ 172.16.22.22 ######################## Filesystem    Type    Size  Used Avail Use% Mounted on /dev/sda2     ext3     12G  5.6G  5.3G  52% / /dev/sda1     ext3     99M   12M   83M  13% /boot tmpfs        tmpfs     58M     0   58M   0% /dev/shm /dev/sda4     ext3    7.1G  443M  6.3G   7% /data /dev/sdb1     ext3     30G  5.5G   23G  20% /autocd ############################ 172.16.22.23 ######################## Filesystem    Type    Size  Used Avail Use% Mounted on /dev/sda2     ext3     15G  2.6G   11G  19% / /dev/sda1     ext3     99M   12M   82M  13% /boot tmpfs        tmpfs     60M     0   60M   0% /dev/shm /dev/sda4     ext3     33G  377M   31G   2% /data ip.list文件内容: dx     172.16.22.22    22   root    larryroot wt     172.16.22.23    22   root    larryroot

脚本四:类似于脚本三,在所有远程服务器上执行相应命令

代码语言:javascript
复制
#!/ usr / bin / python 
#by拉里 
#2011/01/30 
进口 paramiko 
导入 系统 
端口= 22 
username = 'root' 
命令=  “” .join(sys.argv [ 1 :]) 
file = open('ip.list' ) 
对于 行  中的 文件: 
        hostname = str(line.split('\ t' )[ 1 ]) 
        password = str(line.split('\ t' )[ 4 ])。strip() 
        打印“ ##################” ,主机名,“ #####################”  
        s = paramiko.SSHClient() 
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        s.connect(主机名,端口,用户名,密码) 
        stdin,stdout,sterr = s.exec_command(命令) 
        打印 stdout.read() 
        s.close() 
file.close() 

用法: python ssh.py 命令

简单整理到这里通过python的paramiko模块可以很方便的管理服务器,文件的上传下载后续会整理出来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档