shell遠程執行:
經常需要遠程到其他節點上執行一些shell命令,如果分別ssh到每台主機上再去執行很麻煩,因此能有個集中管理的方式就好了。
一下介紹兩種shell命令遠程執行的方法。
前提條件:
配置ssh免密碼登陸
對於簡單的命令:
如果是簡單執行幾個命令,則:
ssh user@remoteNode "cd /home ; ls"
基本能完成常用的對於遠程節點的管理了,幾個注意的點:
1、雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
2、分號,兩個命令之間用分號隔開 (或者使用&&進行連接)
示例:
#!/bin/bash args=$1 if [[ $args = "start" ]] ;then cd /home/programs/flume && sh start_project.sh& ssh xxx.xx.x.xx "cd /home/programs/flume && sh start_project.sh&"& ssh xxx.xx.x.xx "cd /home/programs/flume && sh start_project.sh&"& elif [[ $args = "stop" ]] ;then cd /home/programs/flume && sh stop_project.sh& ssh 172.16.1.43 "cd /home/programs/flume && sh stop_project.sh&"& ssh 172.16.1.45 "cd /home/programs/flume && sh stop_project.sh&"& else echo "the args is not right !" fi
參考:
https://blog.csdn.net/jinking01/article/details/84386769