shell腳本實現(xiàn)同時多臺遠(yuǎn)程主機(jī)執(zhí)行命令的代碼分享
實現(xiàn)需求
在對單臺機(jī)器做操作時我們會用“ssh ip”的方式登錄到機(jī)器上,可以寫這樣一個工具vssh ip1,ip2,…ipn 來模擬登錄到n 臺服務(wù)器,登錄后所有操作相當(dāng)于同時對n 臺服務(wù)器生效。
實現(xiàn)方法
首頁要確??梢酝ㄟ^本地公鑰無密碼登錄遠(yuǎn)程主機(jī):
ssh-copy-id [-i [identity_file]] [user@]machine
shell腳本
#!/bin/bash # ------------------------------------------------------------------------------- # Author: Loya.Chen # Description: Execute commands on multiple remote hosts at the same time. # ------------------------------------------------------------------------------- set -e Usage() { echo "Usage: $0 host1 host2 ... 'command'" } if [ $# -lt 2 ] ;then Usage exit 0 else cmd=${!#} fi logfile=$(mktemp) i=1 success=0 failed=0 for ip in $@;do if [ $i -eq $# ];then break fi ssh $ip $cmd &> $logfile if [ $? -eq 0 ];then #((success++)) success=$(($success+1)) echo -e "\n\033[32m$ip | success \033[0m \n" cat $logfile else ((failed++)) echo -e "\n\033[31m$ip | failed \033[0m\n " cat $logfile fi ((i++)) done echo -e '\n-------------------------' echo -e "\033[32msuccess: $success | failed: $failed \033[0m" echo '-------------------------'
示例
$ bash vssh 10.0.0.11 10.0.0.12 'free -m' 10.0.0.11 | success total used free shared buffers cached Mem: 2871 156 2715 0 8 36 -/+ buffers/cache: 111 2760 Swap: 2047 0 2047 10.0.0.12 | success total used free shared buffers cached Mem: 980 615 365 0 12 69 -/+ buffers/cache: 533 447 Swap: 2047 0 2047 ------------------------- success: 2 | failed: 0 -------------------------
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
mac 安裝omyzsh后不執(zhí)行~/.bash_profile、~/.bashrc的完美解決辦法
mac 安裝 omyzsh 后, terminal瞬間格調(diào)飆升,但是,terminal init的時候并不會執(zhí)行~/.bash_profile、~/.bashrc等腳本了,什么原因呢?下面小編給大家分享解決辦法,一起看看吧2017-01-01Linux環(huán)境下tcpdump網(wǎng)絡(luò)協(xié)議抓包與解析
這篇文章主要為大家介紹了Linux環(huán)境下tcpdump網(wǎng)絡(luò)協(xié)議抓包與解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09mac使用Shell(終端)SSH連接遠(yuǎn)程服務(wù)器的方法
這篇文章主要介紹了mac使用Shell(終端)SSH連接遠(yuǎn)程服務(wù)器的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04linux?中sed命令實現(xiàn)刪除文件的任意列(操作代碼)
這篇文章主要介紹了linux中sed命令實現(xiàn)刪除文件的任意列,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06