shell遠程執行:
經常需要遠程到其他節點上執行一些shell命令,如果分別ssh到每台主機上再去執行很麻煩,因此能有個集中管理的方式就好了。一下介紹兩種shell命令遠程執行的方法。
前提條件:
配置ssh免密碼登陸
對於簡單的命令:
如果是簡單執行幾個命令,則:
ssh user@remoteNode "cd /home ; ls"
基本能完成常用的對於遠程節點的管理了,幾個注意的點:
- 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
- 分號,兩個命令之間用分號隔開
對於腳本的方式:
有些遠程執行的命令內容較多,單一命令無法完成,考慮腳本方式實現:
#!/bin/bash ssh user@remoteNode > /dev/null 2>&1 << eeooff cd /home touch abcdefg.txt exit eeooff echo done!
遠程執行的內容在“<< eeooff ” 至“ eeooff ”之間,在遠程機器上的操作就位於其中,注意的點:
- << eeooff,ssh后直到遇到eeooff這樣的內容結束,eeooff可以隨便修改成其他形式。
- 重定向目的在於不顯示遠程的輸出了
- 在結束前,加exit退出遠程節點