一个问题,清大家指点一下
发表于 : 2009-09-01 21:52
先说一下环境:
A Desktop, CentOS 5.3 64
B Server RHEL 4.6
C Node RHEL 4.6
user通过ssh登录B,以为B为跳板登录(rsh无密码登录)C
通过配置:
user在A上通过ssh user@IP_B 不需要密码
user在B上通过ssh user@IP_A 不需要密码
user登录B后,通过rsh IP_C, 到达C 不需密码;
A C不能直接通讯。
现在,在C上运行一个作业,需要监控;
发现在B 上通过下面的指令可以监控:
rsh $PrivateNode 'ps -u user'
我发现,如果稍微处理一下:
tmp=`rsh $PrivateNode 'ps -u user' | egrep 'Com.exe' | wc -l `
如果哦$tmp==1,就说明我的计算在进行,
这样,我的监控思路是:
每10min运行一次, 如果$tmp=1就继续循环;
如果#tmp==0,
通过下没的指令:
ssh user@A_IP 'mysms -m "Job Done. Pls Check. " ' > /dev/null 2>&1 &
我些的指令如下:文件名称: myNode.sh
#!/bin/bash
PrivateNode=node20
# here is the private node I am using
### Private Functions ###
# 01
function condition
{
value_tmp=`rsh $PrivateNode 'ps -u wangjian' | egrep g03 | wc -l`
}
# 02
function output
{
ssh -p 8022 [email protected] 'sms -f 13596175450 -p ****** -t 13596175450 -m "^_^,Work Finished, Private Node, Down. Pls Check. " ' > /dev/null 2>&1 &
exit
}
condition
while [ $value_tmp == 1 ];
do
condition
sleep 10m
done
output
# end
放在~/bin目录,
后台运行,发现出现两个myNode.sh进程, ID连号,
尽管是我后台运行,
但是user在B上退出登录,字符模式,exit退出,
通过top检测看到,
我一退出,myNode.sh进程就退出....
现在问题:
1
运行一次,为何出现两个myNode.sh进程?
2
后台运行的,我登录出去之后,为何会停止运行?
或许是我的写法有问题,
请大侠指点.....
为了给自己的工作提供方便,刚刚开始学习使用shell脚本,
很多不明白,希望大侠多多指点.....
另。
我今天也写了几个类似的使用while sleep
通过后台监控的。
但是,是在B上运行,监控B上的东西,然后通过output把信息转发到我的电话机上...
可是,在B上运行,监控C上的东西,然后使用output把信息通过B,调用A机器上的sms指令,发送信息就会不工作,郁闷死了....
top一看,出现两个myNode.sh
状态是T
囧....
A Desktop, CentOS 5.3 64
B Server RHEL 4.6
C Node RHEL 4.6
user通过ssh登录B,以为B为跳板登录(rsh无密码登录)C
通过配置:
user在A上通过ssh user@IP_B 不需要密码
user在B上通过ssh user@IP_A 不需要密码
user登录B后,通过rsh IP_C, 到达C 不需密码;
A C不能直接通讯。
现在,在C上运行一个作业,需要监控;
发现在B 上通过下面的指令可以监控:
rsh $PrivateNode 'ps -u user'
我发现,如果稍微处理一下:
tmp=`rsh $PrivateNode 'ps -u user' | egrep 'Com.exe' | wc -l `
如果哦$tmp==1,就说明我的计算在进行,
这样,我的监控思路是:
每10min运行一次, 如果$tmp=1就继续循环;
如果#tmp==0,
通过下没的指令:
ssh user@A_IP 'mysms -m "Job Done. Pls Check. " ' > /dev/null 2>&1 &
我些的指令如下:文件名称: myNode.sh
#!/bin/bash
PrivateNode=node20
# here is the private node I am using
### Private Functions ###
# 01
function condition
{
value_tmp=`rsh $PrivateNode 'ps -u wangjian' | egrep g03 | wc -l`
}
# 02
function output
{
ssh -p 8022 [email protected] 'sms -f 13596175450 -p ****** -t 13596175450 -m "^_^,Work Finished, Private Node, Down. Pls Check. " ' > /dev/null 2>&1 &
exit
}
condition
while [ $value_tmp == 1 ];
do
condition
sleep 10m
done
output
# end
放在~/bin目录,
后台运行,发现出现两个myNode.sh进程, ID连号,
尽管是我后台运行,
但是user在B上退出登录,字符模式,exit退出,
通过top检测看到,
我一退出,myNode.sh进程就退出....
现在问题:
1
运行一次,为何出现两个myNode.sh进程?
2
后台运行的,我登录出去之后,为何会停止运行?
或许是我的写法有问题,
请大侠指点.....
为了给自己的工作提供方便,刚刚开始学习使用shell脚本,
很多不明白,希望大侠多多指点.....
另。
我今天也写了几个类似的使用while sleep
通过后台监控的。
但是,是在B上运行,监控B上的东西,然后通过output把信息转发到我的电话机上...
可是,在B上运行,监控C上的东西,然后使用output把信息通过B,调用A机器上的sms指令,发送信息就会不工作,郁闷死了....
top一看,出现两个myNode.sh
状态是T
囧....