本地shell執行遠程命令

轉載 http://blog.csdn.net/chenpy/article/details/43969967 html

常常要部署多臺服務器上面的應用,若是一個個機器的登陸太麻煩。java

全部就想到編寫一個腳原本部署不一樣的服務器web

前提條件:apache

     配置ssh免登錄 
tomcat

    若是不會的請參加個人另一篇文章 http://blog.csdn.net/chenpy/article/details/30281515bash



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

[java] view plaincopy在CODE上查看代碼片派生到個人代碼片app

  1. ssh user@remoteNode "cd /home ; ls"  ssh

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

  1. 雙引號,必須有。若是不加雙引號,第二個ls命令在本地執行

  2. 分號,兩個命令之間用分號隔開

(2)腳本的方式 

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

[java] view plaincopy在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 plaincopy在CODE上查看代碼片派生到個人代碼片

  1. ssh root@192.168.0.23 > /dev/null 2>&1   << remotessh  

OK,大功告成。

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

相關文章
相關標籤/搜索