在本地shell脚本中ssh到远程服务器并执行命令

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

 

在本地shell脚本中ssh到远程服务器并执行命令

上一篇:Linux 中 cp 命令(文件复制)


下一篇:Ubuntu远程root用户登录