文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python模块之paramiko学习<

2023-01-31 05:38

关注

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

  1. #!/usr/bin/python 
  2. import paramiko 
  3. hostname='172.16.22.23' 
  4. port=22 
  5. username='root' 
  6. password='larryroot' 
  7. if __name__=="__main__": 
  8.         s=paramiko.SSHClient() 
  9.         s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  10.         s.connect(hostname,port,username,password) 
  11.         stdin,stdout,sterr=s.exec_command('df -Th') 
  12.         print stdout.read() 
  13.         s.close() 

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

  1. #!/usr/bin/python 
  2. #by larry 
  3. #2011/01/30 
  4. import sys 
  5. import paramiko 
  6.  
  7. hostname=sys.argv[1] 
  8. command = " ".join(sys.argv[2:]) 
  9. port=22 
  10. username='root' 
  11. password='larryroot' 
  12. if __name__=="__main__": 
  13.         s=paramiko.SSHClient() 
  14.         s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  15.         s.connect(hostname,port,username,password) 
  16.         stdin,stdout,sterr=s.exec_command(command) 
  17.         print stdout.read() 
  18.         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列表中对应服务器的磁盘使用情况

  1. #!/usr/bin/python 
  2. #by larry 
  3. #2011/01/30 
  4. import paramiko 
  5. port=22 
  6. username='root' 
  7. file=open('ip.list') 
  8. for line in file: 
  9.         hostname=str(line.split('\t')[1]) 
  10.         password=str(line.split('\t')[4]).strip() 
  11.         print "##########################",hostname,"########################" 
  12.         s=paramiko.SSHClient() 
  13.         s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  14.         s.connect(hostname,port,username,password) 
  15.         stdin,stdout,sterr=s.exec_command('df -Th') 
  16.         print stdout.read() 
  17.         s.close() 
  18. 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

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

  1. #!/usr/bin/python 
  2. #by larry 
  3. #2011/01/30 
  4. import paramiko 
  5. import sys 
  6. port=22 
  7. username='root' 
  8. command = " ".join(sys.argv[1:]) 
  9. file=open('ip.list') 
  10. for line in file: 
  11.         hostname=str(line.split('\t')[1]) 
  12.         password=str(line.split('\t')[4]).strip() 
  13.         print "##################",hostname,"######################" 
  14.         s=paramiko.SSHClient() 
  15.         s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  16.         s.connect(hostname,port,username,password) 
  17.         stdin,stdout,sterr=s.exec_command(command) 
  18.         print stdout.read() 
  19.         s.close() 
  20. file.close() 

用法:
python ssh.py 命令

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯