经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦。所有就想到编写一个脚本来部署不同的服务器。
前提条件:配置ssh免登陆
(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,大功告成。
使用ssh远程执行命令批量导出数据库到本地:http://www.linuxdiyf.com/linux/10576.html
采用SSH远程执行命令:http://www.linuxdiyf.com/linux/6110.html