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包

  

时间: 2025-01-20 18:40:01

ssh远程执行目标机器上的命令的相关文章

使用ssh远程执行命令批量导出数据库到本地(转)

  前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户

linux下使用ssh远程执行命令批量导出数据库到本地_linux shell

前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户是限

ssh远程执行命令方法和Shell脚本实例_linux shell

写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作  准备工作 基于公私钥认证或者用户

ssh远程执行命令的例子

命令模式 ssh -p $port $user@$p 'cmd' $port : ssh连接端口号 $user: ssh连接用户名 $ip:ssh连接的ip地址 cmd:远程服务器需要执行的操作 连接上了就 ssh 远程服务器ip "要执行的命令" 例如 ssh 216.189.56.71 "ifconfig" 要全自动远程执行任务 必须开始ssh双机认证.

远程执行 Android 设备上的代码 【已翻译100%】(1/2)

"你走进一个咖啡店坐下来.等咖啡的时候,你拿出你的智能手机开始玩一款你前些天下载的游戏.接着,你继续工作并且在电梯里收邮件.在你不知情下,有攻击者获取了公司网络的地址并且不断地感染你所有同事的智能手机. 等下, 什么? 我们在Bromium实验室博客上不会谈论Android太多.但是不时地我们喜欢修修补补.近来,我的同事Thomas Coudray 和我探索了下Android远程代码执行的易损性,想弄明白易损性在现实应用中是多大的问题. 尽管权限提升技术在Android上很普遍(并形成了&quo

远程执行 Android 设备上的代码 【已翻译100%】(2/2)

我设置好AP后,从13,119个标明有潜在漏洞的app中随机选了一些,把它们安装到接入了AP的一台Nexus 5(运行4.4.3)和一台三星XE700t(运行AOSP 4.2的x86平板).我们只不过是启动每个App,做些简单的交互操作,就成功地在超过半数的应用中触发了远程代码执行,它们加载了通过中间人代理注入的恶意代码. 为了好玩,我们把注入到一个app中javascript代码反复修改,直到显示Bromium的标志替换了原有广告. 被扰乱而显示了Bromium标志的app的UI截屏. 全是广

关于ssh登录另台机器上调用其上的脚本文件问题

问题描述 我想用两台机子,从一台机子A上利用一个脚本通过ssh登录到另一台机器B,运行B上的一个脚本文件或者一个进程,然后返回到A机子上.用代码可以表示:A机子:test.sh#!/bin/bash ssh B #这里想调用B上的一个脚本文件或者启动B上的一个进程,不知道怎么写了... exitB机子:test.sh#!/bin/bash echo "XXXXXXXXXXXXXXXXXXXXXXXXXX"哪位好心人知道怎么解决这个问题.请赐教... 解决方案 ssh sb@*** ss

ssh如何远程执行命令并自动退出

ssh命令格式如下: usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl

Linux下非交互式远程执行命令脚本

  Linux下非交互式远程执行命令脚本(比ssh更好的方式) openssh在每台机器上都有,ssh与scp经常出现在我们的生活中. 然而当要管理的机器规模越来越大时,ssh登陆到目标机器进行管理就变得不现实了. 虽然可以直接在ssh后面接命令的方式,进行命令的执行. 但是ssh的严格的权限认证使得我们不得不输入密码,或是建立信任关系,很难去自定义一个特定的认证方式. 基于ssh的这种不足.于是笔者就写了一个jetfire,这个工具.比ssh多的一个重要的功能就是可以自定义认证方式,顺便避免了