一个问题,清大家指点一下

sh/bash/dash/ksh/zsh等Shell脚本
回复
abbott
帖子: 435
注册时间: 2007-07-11 22:45

一个问题,清大家指点一下

#1

帖子 abbott » 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 abbott@192.9.206.50 '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

囧....
回复