Python中的paramiko是一个很实用的模块,通过此模块。能够远程操控多台server。无需在server上安装不论什么东西。仅仅须要在代码运行机器上有Python,paramiko环境就能够了,对于须要多台server协同工作或者要管理多台server的情况下很有帮助。
下面为代码演示样例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import paramiko
#远程控制多台測试server。用来启动測试相关脚本和程序
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.仅仅对linuxserver有效