码迷,mamicode.com
首页 > 系统相关 > 详细

linux-ssh远程后台执行脚本-放置后台执行问题(转)

时间:2017-01-09 13:16:10      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:kill   cal   load   需要   roo   引号   ora   循环   one   

写了一个监控负载的小脚本(死循环,测试结束后再kill对应进程),因需要监控多台服务器,所以在一台服务器上使用ssh统一执行脚本

遇到问题
使用ssh root@172.16.146.20 ‘/usr/local/luly/loadavg.sh 2 2 &‘执行
本机没有即时退出,占用ssh连接
本意是发送命令到远程机执行,本机发送后直接退出

尝试:
1、增加nohup,效果相同:
ssh root@172.16.146.20 ‘nohup /usr/local/luly/loadavg.sh 2 2 &‘

2、增加网络上说的-t 、 -tt 参数,也没有用
ssh -t root@172.16.146.20 ‘/usr/local/luly/loadavg.sh 2 2 &‘
ssh -tt root@172.16.146.20 ‘/usr/local/luly/loadavg.sh 2 2 &‘

3、去掉引号,本机也在后台运行,占用ssh连接,必须手动kill才行,非我所想
ssh root@172.16.146.20 /usr/local/luly/loadavg.sh 2 2 &

最终解决方案:
增加>/dev/null 2>&1,本机即时退出,没有进程遗留,远程后台执行脚本,达到目的
ssh root@172.16.146.20 ‘/usr/local/luly/loadavg.sh 2 2 >/dev/null 2>&1 &‘

监控负载脚本:

# cat loadavg.sh
#!/bin/bash
USAGE="Usage: $0 second filename"

if [ $# -ne 2 ]; then
   echo $USAGE
   exit 1
fi

> /tmp/monitor/loadavg/146.20_loadavg_$2.log

while [[ 1=1 ]]
do
        uptime >> /tmp/monitor/loadavg/146.20_loadavg_$2.log
        sleep $1
done

 

linux-ssh远程后台执行脚本-放置后台执行问题(转)

标签:kill   cal   load   需要   roo   引号   ora   循环   one   

原文地址:http://www.cnblogs.com/vijayfly/p/6264744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!