用于检查进程是否每天都在运行的Shell脚本

时间:2016-10-05 12:33:10

标签: shell

有人可以告诉我如何完成以下方案:

我在一台机器上运行了3个进程(TC_ME,PS_ME和NM_ME)。当这些服务中断时,他们不会发出任何警报或邮件。

我想基于这些过程编写一个shell脚本,所以每当进程失效时,我都需要一个警报。

将基于此创建自动作业。

2 个答案:

答案 0 :(得分:0)

你可以试试这个;

#! /bin/bash
while :
do
    RESULT=`ps -ef | grep "TC_ME\|PS_ME\|NM_ME" | grep -v 'grep' | grep -v $0 | wc -l`
    if [ "$RESULT" != "3" ]; then
            echo `date` ":   some of your processes not running"
    else
            echo `date` ":   processes runs"
    fi
    sleep 10
done   

例如

user@host:/tmp$ ./processesCheck.sh
Wed Oct 5 15:54:01 EEST 2016 :   some of your processes not running
Wed Oct 5 15:54:11 EEST 2016 :   some of your processes not running
Wed Oct 5 15:54:21 EEST 2016 :   some of your processes not running
Wed Oct 5 15:54:31 EEST 2016 :   some of your processes not running

您还可以重定向到日志文件,如下所示;

user@host:/tmp$ nohup ./processesCheck.sh >> processes.log

答案 1 :(得分:0)

如果我使用下面的命令,其中Ownerserver是所有上述过程的常用词,我可以编辑如下的脚本吗?

同时: 做

RESULT = ps -ef | grep "OwnerServer" | grep -v 'grep' | wc -l     if [“$ RESULT”-gt 1];然后                echo date“:进程运行”     其他               echo date“:你的一些进程没有运行”     科幻     睡10 完成了

相关问题