幽灵资源网 Design By www.bzswh.com
简介:
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
脚本简单编写:
管理单台服务器:
脚本一:查询172.16.22.23磁盘使用情况
#!/usr/bin/python import paramiko hostname="172.16.22.23" port=22 username="root" password="larryroot" if __name__=="__main__": s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname,port,username,password) stdin,stdout,sterr=s.exec_command("df -Th") print stdout.read() s.close()
脚本二:在远程服务器上执行相应命令
#!/usr/bin/python #by larry #2011/01/30 import sys import paramiko hostname=sys.argv[1] command = " ".join(sys.argv[2:]) port=22 username="root" password="larryroot" if __name__=="__main__": s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname,port,username,password) stdin,stdout,sterr=s.exec_command(command) print 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 larry #2011/01/30 import paramiko port=22 username="root" file=open("ip.list") for line in file: hostname=str(line.split("\t")[1]) password=str(line.split("\t")[4]).strip() print "##########################",hostname,"########################" s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname,port,username,password) stdin,stdout,sterr=s.exec_command("df -Th") print 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 larry #2011/01/30 import paramiko import sys port=22 username="root" command = " ".join(sys.argv[1:]) file=open("ip.list") for line in file: hostname=str(line.split("\t")[1]) password=str(line.split("\t")[4]).strip() print "##################",hostname,"######################" s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname,port,username,password) stdin,stdout,sterr=s.exec_command(command) print stdout.read() s.close() file.close()
用法:
python ssh.py 命令
简单整理到这里通过python的paramiko模块可以很方便的管理服务器,文件的上传下载后续会整理出来。
SSH
下面是通过ssh的dsa或rsa公钥验证批量登录服务器执行命令:
#!/usr/bin/python #2012/02/02 by larry import paramiko import sys,os port=22 username="larry" key_file="~/.ssh/authorized_keys" know_host="/home/larry/.ssh/known_hosts" command=" ".join(sys.argv[1:]) ####获取命令行参数 file=open("ip.list") for line in file: hostname=str(line.split(" ")[1]) ####截取ip字段 print "#####################################",hostname,"###############################################" s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.load_system_host_keys(know_host) s.connect(hostname,port,username,key_file) stdin,stdout,sterr=s.exec_command(command) print stdout.read().strip() s.close() file.close()
执行python脚本:
python sshkey.py df -h
################172.16.22.22######################## Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 14G 3.5G 9.7G 27% / /dev/mapper/VolGroup00-data 116G 47G 64G 43% /data /dev/cciss/c0d0p1 99M 13M 82M 14% /boot tmpfs 5.9G 0 5.9G 0% /dev/shm
标签:
Python,Paramiko
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。