Python调用paramiko模块实现远程管理多台服务器

Python中的paramiko是一个非常有用的模块,通过此模块,可以远程操控多台服务器,无需在服务器上安装任何东西,只需要在代码执行机器上有Python,paramiko环境就可以了,对于需要多台服务器协同工作或者要管理多台服务器的情况下非常有帮助。


以下为代码示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-


import paramiko
#远程控制多台测试服务器,用来启动测试相关脚本和程序

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

print '开始启动测试程序............................'
#连接192.168.0.1
ssh.connect(ip,port,username, password)
#启动
stdin, stdout, stderr = ssh.exec_command("cd /home/..../;rm -rf ./*;ls -l")
print stdout.readlines()

stdin, stdout, stderr = ssh.exec_command("cd /home/..../;./startup.sh;ps -ef | grep java | grep -v grep")
print stdout.readlines()
ssh.close()


#连接192.168.0.2
ssh.connect(ip,port,username, password)
#启动
stdin, stdout, stderr = ssh.exec_command("cd /home/..../;rm -rf ./*;ls -l")
print stdout.readlines()

stdin, stdout, stderr = ssh.exec_command("cd /home/..../;./startup.sh;ps -ef | grep java | grep -v grep")
print stdout.readlines()
ssh.close()


print '启动测试程序成功............................'




使用说明:

1.最好把每次要执行的一系列相关的命令放到一个exec_commmand中执行,因为exec_commmand执行完毕后会自动跳转

2.有些错误是捕捉不到的,比如切换到一个不存在的目录,我碰到这个问题的时候调试了1个小时

3.只对linux服务器有效






你可能感兴趣的:(Python)