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 禁⽤伪终端配置
准备⼯作:
出现问题的情景:
性能测试时,有5台服务器需要监控负载、io等信息,想在其中⼀台服务器上执⾏ssh统⼀运⾏5台服务
器上的监控脚本(5台服务器上都已存放监控脚本),运⾏主allmonitor.sh脚本的时候只能ssh远程执⾏⼀条。以下为allmonitor.sh脚本内容:
#!/bin/bash
USAGE="Usage: $0 间隔时间(单位秒) 结果保存到的⽂件名"
if [ $# -ne 2 ]; thenlinux循环执行命令脚本
echo $USAGE
exit 1
fi
echo "start"
ssh 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2
echo "239"
sh /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2
echo "11"
ssh 192.168.146.4 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2
echo "4"
ssh 192.168.146.188 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2
echo "188"
ssh 192.168.146.20 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2
echo "20"
思考:
加⼊调试代码,发现第⼀条的监控可以完整结束,但是跳不出来。猜想是不是要加⼊跳出当前脚本执⾏的命令
尝试:
查资料可以加-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 2 ]; then
echo $USAGE
exit 1
fi
echo "start"
ssh 192.168.146.239 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2& echo "239"
sh /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2&
echo "11"
ssh 192.168.146.4 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2& echo "4"
#ssh 192.168.146.188 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2& echo "188"
ssh 192.168.146.20 /usr/local/chenjinyu/monitor/monitorResource.sh $1 $2& echo "20"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论