ssh远程执行目标机器上的命令
一句话:
ssh -t -p 端口号 用户名@远程机器IP '远程机器上的命令完整路径'
例如:
ssh -t -p 22 yangjunming@dev '/opt/app/deploy.sh'
注意事项:
一般先配置ssh免密码登录,然后结合这个可以实现一键远程自动部署,大概思路如下:
a)先在本机build项目(ant/maven/gradle均可)
b) 然后打包成tar并copy到远程机器的指定目录(最简单的方式就是用scp)
c) 调用远程机器上的shell脚本,解压tar并执行nohup之类的命令重启应用(如果考虑到备份的话,可以在解压前,先备份原来的应用或目录)
注:如果启用过程中,依赖一些环境变量,比如:大部分java应用都依赖JAVA_HOME,CLASSPATH这二个环境变量,假设这二个环境变量是在/etc/profile里设置的,强烈建议在shell脚本开头,写上source /etc/profile或export JAVA_HOME=... 强制让环境变量生效,否则可能出现启动过程中,无法正常找到环境变量的各种诡异问题。
d) 删除(或备份)远程机器上的tar包
作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。