polysh簡介
polysh 是一個交互式命令,可以在一台服務器上批量的對一批服務器進行處理,運行交互式命令。官方的簡介如下:
Polysh is a tool to aggregate several remote shells into one. Itis used to launch an interactive remote shellon many machines at once. It is written in Python and requires Python ≥ 2.4.
注: Polysh 是一個由幾個遠程腳本集合而成的工具,它被用於在許多服務器上運行一個交互式的遠程腳本,由 Python 編寫,最低要求為 Python 2.4
當需要查看一個服務(部署在多台機器上)的日志的時候,可以使用ploysh在一台機器查看多台機器的日志,而不需要一台機器一台機器的登錄查看,方便了問題的排查和定位。
polysh安裝
先在一台機器上執行如下命令安裝polysh:
1、選擇一個目錄,下載解壓文件:
wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz tar -zxvf polysh-0.4.tar.gz

2、新建polysh的使用腳本,然后通過 chmod命令 賦予可執行權限:
vim polysh.sh 腳本內容如下:將需要訪問的機器列表填寫在最后 python /home/安裝目錄.../polysh-0.4/polysh.py {name1, name2, name3}
{}大括號里填寫的是機器的名稱,以逗號 "," 分隔。polysh也支持多種機器名的格式,假如機器很多的話,也可以寫為:name<1-3>

3、如果出現如下提示信息:機器's passpord,則需要配置機器之間無密碼訪問。
① 通過 ssh-keygen -t rsa 生成本機器的密鑰和公鑰
② cat /用戶目錄.../.ssh/id_rsa.pub 獲取公鑰
③ 將公鑰追加到所需要無密碼訪問目標機器(例如上面的name<1-3>的3台機器)的授權文件中(授權文件的路徑為:/用戶目錄.../.ssh/authorized_keys)
polysh使用
運行剛剛新建的 ./polysh.sh 腳本

ready (3) 表示 3台機器已經連接完畢,可以執行查詢命令。exit或Crtl+z都可以退出。
查看3台機器上面的日志信息:less test.log,如圖所示,顏色不同的3行分別是3台機器輸出的日志內容:

通過在一台機器上,實現對多個機器進行操作,再也不需要去記復雜的機器名稱了,也不需要每個機器來回登錄去執行重復指令,解放自己,減少了重復工作。最方便的場景就是查日志、查看機器信息(CPU、磁盤)這些小操作。
如果機器非常多的話(10台以上),就不建議使用了,還有對機器性能有影響的命令也不建議執行。
