pssh一個微量級自動化工具
阿新 • • 發佈:2018-03-01
ssh 可選 -a 必須 管理 系統 for sed 信息
一、pssh簡介
pssh是一個python編寫可以在多臺服務器上執行命令的工具,也可實現文件復制。pssh需要通過ssh的key驗證來管理主機,其不能很好的支持密碼驗證。用過epel源的pssh包來安裝
二、pssh選項
pssh [OPTIONS] command […]
–version:查看版本
-h:主機文件列表,內容格式”[user@]host[:port]”
-H:主機字符串,內容格式”[user@]host[:port]”
-l:登錄使用的用戶名
-p:並發的線程數【可選】
-o:輸出的文件目錄【可選】
-e:錯誤輸入文件【可選】
-t:TIMEOUT 超時時間設置,0無限制【可選】
-O:SSH的選項
-v:詳細模式
-A:手動輸入密碼模式
-x:額外的命令行參數使用空白符號,引號,反斜線處理
-X:額外的命令行參數,單個參數模式,同-x
-i:每個服務器內部處理信息輸出
-P:打印出服務器返回信息
常用選項:-H 、-h 、-i、
三、示例
joker ~ # pssh -H [email protected] -i sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config [1] 02:56:19 [SUCCESS] [email protected] -H表示指定主機 -i表示在本地輸出執行結果 joker ~ # echo -e "172.18.30.254\n172.18.30.253" >ip.txt joker ~ # cat ip.txt 172.18.30.254 172.18.30.253 joker ~ # pssh -h ip.txt -i echo "ok" [1] 02:58:29 [SUCCESS] 172.18.30.254 ok [2] 02:58:29 [SUCCESS] 172.18.30.253 ok 通過 -h選項,讀取ip.txt文件(批量保存ip的列表),達到批量執行任務的目的。
如果鑰調用遠程的變量,那麽需要把需要在遠程主機執行的命令用單引號引起來,否則調用的是本地的變量
- joker ~ # pssh -h ip.txt -i echo "ok"
- [1] 02:58:29 [SUCCESS] 172.18.30.254
- ok
- [2] 02:58:29 [SUCCESS] 172.18.30.253
- ok
- joker ~ # pssh -h ip.txt -i echo "$HOSTNAME"
- [1] 03:01:25 [SUCCESS] 172.18.30.254
- joker
- [2] 03:01:25 [SUCCESS] 172.18.30.253
- joker
- joker ~ # pssh -h ip.txt -i echo ‘$HOSTNAME‘
- [1] 03:01:34 [SUCCESS] 172.18.30.254
- joker-6-01
- [2] 03:01:34 [SUCCESS] 172.18.30.253
- newhostname
如果要使用基於密碼的方式去連接主機可以加-A選項,但是這個工具只會提示輸入一次密碼,也就是說,在批量執行的過程中,所有的主機密碼都是相同的,在工作中,顯然這樣是不合要求的,所以這種方式一般是不使用的。
四、基於pssh的pscp.pssh
功能是將本地文件批量復制到遠程主機
Pscp-pssh選項
-v 顯示復制過程
-a 復制過程中保留常規屬性
-r 遞歸復制目錄
joker ~ # pscp -h ip.txt /root/ip.txt ~/ #gentoo系統和centos的有些區別,但是參數格式是一樣的 [1] 03:07:43 [SUCCESS] 172.18.30.254 [2] 03:07:43 [SUCCESS] 172.18.30.253 將本地ip.txt 拷貝到遠程目標主機上
五、基於pssh的pslurp.pssh命令
功能是將遠程主機的文件批量復制到本地
Pslurp-pssh選項
-L 指定從遠程主機下載到本機的存儲的目錄,local是下載到本地後的名稱
-r 遞歸復制目錄
joker ~ # pslurp -h ip.txt -L /app/ /etc/passwd passwd [1] 03:15:43 [SUCCESS] 172.18.30.254 [2] 03:15:43 [SUCCESS] 172.18.30.253 joker ~ # cd /app/ joker /app # ls -l total 0 drwxr-xr-x 2 root root 42 Jan 9 03:15 172.18.30.253 drwxr-xr-x 2 root root 42 Jan 9 03:15 172.18.30.254 joker /app # cd 172.18.30.254 joker /app/172.18.30.254 # ls passwd -L指定保存到本地的哪個目錄 倒數第二個參數表示要在在遠程主機下載的文件 paswd表示要更換的名字(必須有這一項,否則會報錯)
pssh一個微量級自動化工具