在本地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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM