专栏首页python3python模块之paramiko学习<

python模块之paramiko学习<

简介: 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磁盘使用情况

#!/ 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() 

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

#!/ 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列表中对应服务器的磁盘使用情况

#!/ 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

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

#!/ 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模块可以很方便的管理服务器,文件的上传下载后续会整理出来。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python note

    1.新建一个项目 django-admin.py startproject project_name 2.新建一个APP python manage.py st...

    py3study
  • python-如何获取命令行是参数

    如果需要获取python test.py xx yy zz上面输入的xx yy zz

    py3study
  • 在Python使用yaml的几个例子

    “把变量写进yaml做配置文件,然后python脚本从yaml文件里面取到变量”的方法最近是在python编程里比较流行的配置项方法。yaml更加易读,而且通过...

    py3study
  • Android实现带页面切换的锁屏功能

    一个简单的Android 锁屏小Demo,可以设置左滑有滑,我简单的了解一下自定义锁屏,顺便总结了一下思路顺便画个图帮助理解。

    砸漏
  • 多模态机器学习,在线教育退课预测新进展!

    在线教育场景下的学生退课行为预测,一直是机器学习(ML)与教育(EDU)交叉领域内较为火热的研究课题。

    AI科技评论
  • Android 中menu同时显示图标和文字的实现

    Activity中的menu条目,在设置其showAsAction=”never”时,默认只显示文字title,而不会显示图标icon,可以在Activity中...

    砸漏
  • 两次死锁的分析

    以上过程,因为S锁升级为X锁的时间间隔很短,所以不是很好复现,一般在高并发的时候出现。不过可以用3个事务来复现:

    十毛
  • python paramiko

    近段时间用Python写一个小东西,每次修改代码后要手工上传到服务器,觉得很麻烦,虽然有WinSCP,找了一下资料,发现paramiko可以实现自动上传文件的功...

    py3study
  • Android数据库安全解决方案,使用SQLCipher进行加解密

    我们都知道,Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。数据库存储是我们经常会使用到的一种存储方式,相信大...

    用户1158055
  • 手把手教你安装win10+Ubuntu16.04的双系统(全网最详细)

    本系列为小白入门整个AI项目教程,主要涉及双系统的搭建,linux的使用,安装caffe-gpu版本,利用caffe实现目标检测,并移植模型到android移动...

    小小詹同学

扫码关注云+社区

领取腾讯云代金券