pssh和pscp命令

經(jīng)常會有一些需要在多臺線上服務(wù)器執(zhí)行同樣的操作,最近學(xué)習(xí)到了幾個(gè)命令可以極大的方便這方面的操作。這幾條命令其實(shí)都是linux上批量執(zhí)行任務(wù)的命令,都是pythonpssh包提供的命令,用法也大同小異,學(xué)習(xí)起來也很容易,但是用處卻是大大的。可以通過pip install pssh來安裝這個(gè)python包,安裝完成后會自動提供這幾個(gè)命令

pssh命令

pssh 是一個(gè)可以并行的在多個(gè)ip上執(zhí)行ssh命令的程序, 主要用來在多臺服務(wù)器上執(zhí)行同樣的命令

常用參數(shù)

-h host_filehost_file指定的文件中讀取需要連接的ip信息。(常用)

-H host 從命令行讀取登錄主機(jī)信息 (常用)

-l user 登錄用戶名

-p 一次并行執(zhí)行的機(jī)器個(gè)數(shù) (常用)

-t 連接機(jī)器的超時(shí)時(shí)間

-o 標(biāo)準(zhǔn)輸出打印文件

-e 標(biāo)準(zhǔn)錯(cuò)誤打印文件

-i 每個(gè)主機(jī)執(zhí)行完畢后顯示標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,默認(rèn)不會顯示。(最常用)

例子

打印ip_list.txt中每個(gè)占用8080端口的進(jìn)程, 每次并發(fā)連接執(zhí)行兩個(gè)主機(jī)

pssh -h ip_list.txt -i -p 2 'fuser -n tcp 8080'

輸出

[1] 13:58:14 [SUCCESS] 10.1.107.171
14696 14702 14703 14704 14711 14712 14714 14716 14717 14718Stderr: 8080/tcp:
[2] 13:58:16 [SUCCESS] 10.3.13.91
15072 15078 15079 15082 15085 15086 15087 15090 15094 20237Stderr: 8080/tcp:
[3] 13:58:16 [SUCCESS] 10.3.13.42
15204 15210 15211 15212 15215 15216 15221 15222 15223 15224Stderr: 8080/tcp:
[4] 13:58:18 [SUCCESS] 10.1.107.142
6935  6941  6942  6943  6946  6953  6954  6955  6956  6957Stderr: 8080/tcp:

pscp命令

pscp 命令是用來并行的將本地文件拷貝到多臺服務(wù)器上的命令。參數(shù)和pssh命令基本一致

常用參數(shù)

這個(gè)命令常用參數(shù)基本和pssh一致,不同的是pssh命令中的-i參數(shù)此命令不支持,同時(shí)多了一個(gè)-r參數(shù),用于遞歸拷貝文件夾

例子

將本地的hehe.txt文件拷貝到ip_list.txt中的所有機(jī)器上面的/data/hehe.txt位置

pscp -h ip_list.txt -p 2 hehe.txt /data/hehe.txt

輸出

[1] 14:04:41 [SUCCESS] 10.1.107.171
[2] 14:04:41 [SUCCESS] 10.3.13.91
[3] 14:04:41 [SUCCESS] 10.1.107.142
[4] 14:04:41 [SUCCESS] 10.3.13.42

結(jié)語

除了psshpscp外,pssh包還提供了prsync命令使用rsync協(xié)議來并行將本地文件同步到不通主機(jī),plcurl用來將不通服務(wù)器上的文件同步到本地等等。只要知道這些命令,具體用法可以在使用man查詢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容