Linux:ssh远程执行命令并自动退出
ssh命令格式:
[root@localhost ~]# ssh --help
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_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
主要参数说明:
-l 指定登入用户
-p 设置端口号
-f 后台运行,并推荐加上 -n 参数
-n 将标准输入重定向到 /dev/null,防止读取标准输入
-N 不执行远程命令,只做端口转发
-q 安静模式,忽略一切对话和错误提示
-T 禁用伪终端配置
准备工作:
两台服务器之间设置信任关系,具体步骤详见:http://www.cnblogs.com/channy14/p/4644765.html
出现问题的情景:
性能测试时,有5台服务器需要监控负载、io等信息,想在其中一台服务器上执行ssh统一运行5台服务器上的监控脚本(5台服务器上都已存放监控脚本),运行主allmonitor.sh脚本的时候只能ssh远程执行一条。以下为allmonitor.sh脚本内容:
#!/bin/bash
USAGE="Usage: $0 间隔时间(单位秒) 结果保存到的文件名"
if [ $# -ne ]; then
echo $USAGE
exit
fi
echo "start"
ssh 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $ $
echo ""
sh /usr/local/chenjinyu/monitor/monitorResource.sh $ $
echo ""
ssh 192.168.146.4 /usr/local/chenjinyu/monitor/monitorResource.sh $ $
echo ""
ssh 192.168.146.188 /usr/local/chenjinyu/monitor/monitorResource.sh $ $
echo "" ssh 192.168.146.20 /usr/local/chenjinyu/monitor/monitorResource.sh $ $
echo ""
思考:
加入调试代码,发现第一条的监控可以完整结束,但是跳不出来。猜想是不是要加入跳出当前脚本执行的命令
尝试:
查资料可以加-t参数,虚拟出一个终端,将【ssh 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2】改为:==>【ssh -t 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2】
成功的方案:
在命令末尾加&,远程后台运行。
#!/bin/bash
USAGE="Usage: $0 间隔时间(单位秒) 结果保存到的文件名" if [ $# -ne ]; then
echo $USAGE
exit
fi echo "start"
ssh 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $ $ &
echo "" sh /usr/local/chenjinyu/monitor/monitorResource.sh $ $ &
echo "" ssh 192.168.146.4 /usr/local/chenjinyu/monitor/monitorResource.sh $ $ &
echo "" #ssh 192.168.146.188 /usr/local/chenjinyu/monitor/monitorResource.sh $ $ &
echo "" ssh 192.168.146.20 /usr/local/chenjinyu/monitor/monitorResource.sh $ $ &
echo ""
Linux:ssh远程执行命令并自动退出的更多相关文章
- ssh远程执行命令并自动退出(已测试通过)
转自:http://blog.csdn.net/fdipzone/article/details/23000201 ssh命令格式如下: usage: ssh [-1246AaCfgKkMNnqsTt ...
- ssh远程执行命令并自动退出
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [ ...
- SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...
- 解决SSH远程执行命令找不到环境变量的问题
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...
- [转帖]ssh 远程执行命令
ssh 远程执行命令 https://www.cnblogs.com/youngerger/p/9104144.html SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是 ...
- 网络编程 - 1.简单的套接字通信/2.加上通信循环/3.bug修复/4.加上链接循环/5.模拟ssh远程执行命令
1.简单的套接字通信 服务端 ''' 服务端 接电话 客户端 打电话 1.先启动服务端 2.服务端有两种套接字 1.phone 用来干接收链接的 2.conn 用来干收发消息的 ''' import ...
- 利用scp 远程上传下载文件/文件夹和ssh远程执行命令
利用scp传输文件 1.从服务器下载文件scp username@servername:/path/filename /tmp/local_destination例如scp codinglog@192 ...
- ssh远程执行命令使用明文密码
经过不懈的搜索终于找到ssh远程执行命令使用明文密码使用sshpass. 例子: sshpass -p "sequoiadb" ssh root@localhost "l ...
- 模拟ssh远程执行命令,粘包问题,基于socketserver实现并发的socket
06.27自我总结 1.模拟ssh远程执行命令 利用套接字编来进行远程执行命令 服务端 from socket import * import subprocess server = socket(A ...
随机推荐
- 0811 css样式表基本
CSS(Cascading Style Sheets,层叠样式表),作用是美化HTML网页. /*注释*/ 注释语法 1. 样式表分类 ①内联样式表 和html联合显示,控制精确,但是可重用性差 ...
- git(5) windows下 pycharm + git(github) ,在本地方便管理
本篇博客讲解一下,windows下如何在pycharm下使用git(使用github设置和git一样),在本地进行commit,push,pull等操作 优点:简单,方便 pycharm版本:5.0. ...
- 命令行登录mysql报Segmentation fault错误是怎么回事
==========解决方法============在源码包里,编辑文件 cmd-line-utils/libedit/terminal.c把terminal_set方法中的 char buf[TC_ ...
- 图片_ _优化Bitmap加载图片1
=========== 1 视图显示大量图片时的内存问题 setBackgroundResource 回去res 资源文件里面找适配手机当前屏幕的文件,所以消耗高,etBackgroundDra ...
- ImageLoader_ _Universal-Image-Loader完全解析(一)之介绍与使用详解
转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50439814 本文出自:[江清清的博客] (一).前言: 已经半个月 ...
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用. 首先右键点我的电脑.打开属性.然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME” ...
- Android学习笔记02
1.线性布局LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- JDBC中的PreparedStatement-防止SQL注入攻击
在JDBC对数据库进行操作的时候,SQL注入是一种常见的针对数据库的注入攻击方式.如下面的代码所演示,在我们的提交字段中掺入了SQL语句,会使得程序的登录校验失效: package org.lyk.m ...
- [InnoSetup]Inno Setup软件打包脚本
脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "SFT期货交易系统&quo ...
- java 对象类型的转换
import com.java.charpt05.NewStr; class Quadrangle{ public static void draw(Quadrangle q) { ...