最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python使用Paramiko模块编写脚本进行远程服务器操作

来源:动视网 责编:小采 时间:2020-11-27 14:36:50
文档

Python使用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/paramik
推荐度:
导读Python使用Paramiko模块编写脚本进行远程服务器操作:简介: paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。 安装所需软件包: http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.5.tar.gz http://www.lag.net/paramik


简介:
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("	")[1]) 
 password=str(line.split("	")[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("	")[1]) 
 password=str(line.split("	")[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模块编写脚本进行远程服务器操作

Python使用Paramiko模块编写脚本进行远程服务器操作:简介: paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。 安装所需软件包: http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.5.tar.gz http://www.lag.net/paramik
推荐度:
标签: 远程 服务器 模块
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top