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