經常要部署多台服務器上面的應用,如果一個個機器的登錄太麻煩。
所有就想到編寫一個腳本來部署不同的服務器
前提條件:
配置ssh免登陸
如果不會的請參加我的另外一篇文章 http://blog.csdn.net/chenpy/article/details/30281515
(1)命令行執行登錄並且在目標服務器上執行命令
- ssh user@remoteNode "cd /home ; ls"
基本能完成常用的對於遠程節點的管理了,幾個注意的點:
- 雙引號,必須有。如果不加雙引號,第二個ls命令在本地執行
- 分號,兩個命令之間用分號隔開
(2)腳本的方式
這個正式我想要的方式,在目標服務器上執行批量的命令。
- #!/bin/bash
- ssh root@192.168.0.23 << remotessh
- killall -9 java
- cd /data/apache-tomcat-7.0.53/webapps/
- exit
- remotessh
遠程執行的內容在“<< remotessh ” 至“ remotessh ”之間,在遠程機器上的操作就位於其中,注意的點:<< remotessh,ssh后直到遇到remotessh這樣的內容結束,remotessh可以隨便修改成其他形式。在結束前,加exit退出遠程節點
如果不想日志文件在本機出現可以修改配置
- ssh root@192.168.0.23 > /dev/null 2>&1 << remotessh
OK,大功告成。
參考文檔:http://www.cnblogs.com/ilfmonday/p/ShellRemote.html