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