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服務器有效