標籤:style blog ar color sp strong 資料 on div
大資料平台下經常建立設計多個節點的叢集需要統一部署,這就設計到守護進程或者部署指令碼在不同節點執行,如果能在master機器上,統一執行指令碼,一次性啟動整個叢集的服務,感覺很nice。因為,分享如下內容:
前提條件:
配置ssh免密碼登陸
對於簡單的命令:
如果是在遠端節點執行幾個命令,則:
ssh [email protected] "cd /home ; ls"
注意點:
- 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
- 分號,兩個命令之間用分號隔開
對於遠端執行指令碼的方式:
有些遠程執行的命令內容較多,單一命令無法完成,考慮指令碼方式實現:
#!/bin/bashssh [email protected] > /dev/null 2>&1 << eeoocd /hometouch abcdefg.txtexiteeooecho done!
遠程執行的內容在“<< eeoo ” 至“ eeoo”之間,在遠程機器上的操作就位於其中,注意的點:
- << eeoo,ssh後直到遇到eeoo這樣的內容結束,eeoo可以隨便修改成其他形式。
- 重新導向目的在於不顯示遠端輸出了
- 在結束前,加exit退出遠程節點
本人範例程式碼:
#!/bin/bashsource /home/config.sh/home/start-XXX.py echo node local ok
#kill process no neededps x | grep ‘XXX‘ | grep -v grep | awk ‘{print $1}‘| xargs -l kill -9ssh root@XXX141 > /dev/null 2>&1 << eeooffsource /home/config.sh/home/start-xxx.pyexiteeooffecho xxx141 done!
ssh [email protected] > /dev/null 2>&1 << eeooffsource /home/config.sh/home/start-xxx.pyexiteeooffecho xxx142 done!
linux shell執行遠端電腦上的命令或者指令碼(ssh)