linux shell 遠程執行命令


經常要部署多台服務器上面的應用,如果一個個機器的登錄太麻煩。

所有就想到編寫一個腳本來部署不同的服務器

前提條件:

     配置ssh免登陸 

    如果不會的請參加我的另外一篇文章 http://blog.csdn.net/chenpy/article/details/30281515



(1)命令行執行登錄並且在目標服務器上執行命令

[java]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
 
  1. ssh user@remoteNode "cd /home ; ls"  

基本能完成常用的對於遠程節點的管理了,幾個注意的點:

  1. 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
  2. 分號,兩個命令之間用分號隔開

(2)腳本的方式 

這個正式我想要的方式,在目標服務器上執行批量的命令。

[java]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
 
  1. #!/bin/bash  
  2. ssh root@192.168.0.23   << remotessh  
  3. killall -9 java  
  4. cd /data/apache-tomcat-7.0.53/webapps/  
  5. exit  
  6. remotessh  
 
        

 

遠程執行的內容在“<< remotessh ” 至“ remotessh ”之間,在遠程機器上的操作就位於其中,注意的點:<< remotessh,ssh后直到遇到remotessh這樣的內容結束,remotessh可以隨便修改成其他形式。在結束前,加exit退出遠程節點

如果不想日志文件在本機出現可以修改配置

 

[html]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
 
  1. ssh root@192.168.0.23 > /dev/null 2>&1   <remotessh  

 

OK,大功告成。

參考文檔:http://www.cnblogs.com/ilfmonday/p/ShellRemote.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM