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包

  

posted @ 2016-01-12 16:29  菩提树下的杨过  阅读(2177)  评论(0编辑  收藏  举报