使用PSSH批量操作Linux伺服器

劉秋杉發表於2015-03-07

轉載自http://www.cnblogs.com/lurenjiashuo/p/pssh.html

簡介

伺服器多了,有一個問題就是如何批量快速操作多臺伺服器,在網上搜到了PSSH工具,試用了一下發現挺好用,推薦給大家。

pssh是一個python編寫的可以在多臺伺服器上執行命令的輕量級管理工具,同時支援拷貝檔案,python版本大於2.4即可,專案地址:parallel-ssh

安裝

$ wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

$ tar -xzvf pssh-2.3.1.tar.gz

$ cd pssh-2.3.1

$ python setup.py install

PSSH相關引數

  • -h 執行命令的遠端主機列表檔案,檔案內容格式[user@]host[:port]
    • 如 test@127.0.0.2:229
  • -H 執行命令主機,主機格式 user@ip:port
  • -l 遠端機器的使用者名稱
  • -p 一次最大允許多少連線
  • -P 執行時輸出執行資訊
  • -o 輸出內容重定向到一個檔案
  • -e 執行錯誤重定向到一個檔案
  • -t 設定命令執行超時時間
  • -A 提示輸入密碼並且把密碼傳遞給ssh(如果機器都是ssh key打通的則無需加-A)
  • -O 設定ssh一些選項
  • -x 設定ssh額外的一些引數,可以多個,不同引數間空格分開
  • -X 同-x,但是隻能設定一個引數
  • -i 顯示標準輸出和標準錯誤在每臺host執行完畢後

用法示例

先建立一個文字檔案hosts.txt,存放要操作的機器列表,格式為[user@]host[:port]:

user1@127.0.0.1:1254
user2@127.0.0.2
127.0.0.3

用pssh檢視所有伺服器的uptime:

$ pssh -i -h hosts.txt 'uptime'

可根據需要把 update 換為別的命令

附加工具

pssh安裝後附加了一些很好用的工具,主要有:

1、pscp

作用:傳輸檔案到多個hosts,類似scp

示例:

$ pscp -h hosts.txt foo.txt /home/foo.txt

2、pslurp

作用:從多臺遠端機器拷貝檔案到本地

示例:

$ pslurp -h hosts.txt /etc/hosts local_dir

3、pnuke

作用:並行在遠端主機殺程式

示例:

$ pnuke -h hosts.txt -l root java

4、prsync

作用:使用rsync協議從本地計算機同步到遠端主機

示例:

$ prsync -r -h hosts.txt foo /home/foo

參考文件

http://www.opstool.com/article/266

http://linux.die.net/man/1/pssh



相關文章