转载 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 plaincopyapp
ssh user@remoteNode "cd /home ; ls" ssh
基本能完成经常使用的对于远程节点的管理了,几个注意的点:
webapp
双引号,必须有。若是不加双引号,第二个ls命令在本地执行
分号,两个命令之间用分号隔开
(2)脚本的方式
这个正式我想要的方式,在目标服务器上执行批量的命令。
[java] view plaincopy
#!/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退出远程节点
若是不想日志文件在本机出现能够修改配置
[html] view plaincopy
ssh root@192.168.0.23 > /dev/null 2>&1 << remotessh
OK,大功告成。
参考文档:http://www.cnblogs.com/ilfmonday/p/ShellRemote.html