使用PSSH大量操作Linux伺服器,psshlinux伺服器
簡介
伺服器多了,有一個問題就是如何批量快速控制項目多台伺服器,在網上搜到了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]
- -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:1254user2@127.0.0.2127.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
怎同時管理多台伺服器
首先10台真的不算多,不過你的意識是很好的.再,如果是10台直接統一管理完全完全可以使用cssh這樣的多視窗工具,或者一些pssh批量執行工具,同時進行操作管理,這個不需要任何成本代價.再,你說到系統情況,應該是監控這一塊的,用一個開源工具來集中查看,像ganglia nagios這些開源工具完全夠用.再,系統的配置是在你的伺服器標準化後,可以自己寫指令碼完成,或者複雜點使用開源的puppet也可以滿足.最後,如果你實力很強,或者覺得現在的工具太不緊湊了你可以自己寫些管理平台,這個看你具體的需求了.END,需求帶動生產吧,細節有很多需要思考.PS:一般出於安全考慮,還會有統一的管理入口伺服器,這樣你的管理結構就又要發生一些變化了,安全和效率的取捨關係.
怎同時管理多台伺服器
首先10台真的不算多,不過你的意識是很好的.再,如果是10台直接統一管理完全完全可以使用cssh這樣的多視窗工具,或者一些pssh批量執行工具,同時進行操作管理,這個不需要任何成本代價.再,你說到系統情況,應該是監控這一塊的,用一個開源工具來集中查看,像ganglia nagios這些開源工具完全夠用.再,系統的配置是在你的伺服器標準化後,可以自己寫指令碼完成,或者複雜點使用開源的puppet也可以滿足.最後,如果你實力很強,或者覺得現在的工具太不緊湊了你可以自己寫些管理平台,這個看你具體的需求了.END,需求帶動生產吧,細節有很多需要思考.PS:一般出於安全考慮,還會有統一的管理入口伺服器,這樣你的管理結構就又要發生一些變化了,安全和效率的取捨關係.