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
[*]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
[*]command = " ".join(sys.argv)
[*]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.pyip地址 命令
# python single1.py172.16.22.23 df -TH
Filesystem Type >
/dev/sda2 ext3 13G 6.0G 5.7G52% /
/dev/sda1 ext3 104M 12M 87M13% /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 25G20% /autocd
# python single1.py172.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'))
[*] password=str(line.split('\t')).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()
用法:
# python ssh.py
############################ 172.16.22.22 ########################
Filesystem Type >
/dev/sda2 ext3 12G5.6G5.3G52% /
/dev/sda1 ext3 99M 12M 83M13% /boot
tmpfs tmpfs 58M 0 58M 0% /dev/shm
/dev/sda4 ext3 7.1G443M6.3G 7% /data
/dev/sdb1 ext3 30G5.5G 23G20% /autocd
############################ 172.16.22.23 ########################
Filesystem Type >
/dev/sda2 ext3 15G2.6G 11G19% /
/dev/sda1 ext3 99M 12M 82M13% /boot
tmpfs tmpfs 60M 0 60M 0% /dev/shm
/dev/sda4 ext3 33G377M 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)
[*]file=open('ip.list')
[*]for line in file:
[*] hostname=str(line.split('\t'))
[*] password=str(line.split('\t')).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模块可以很方便的管理服务器,文件的上传下载后续会整理出来。
页:
[1]