0

更新:当我在下面的脚本中回显 $res 时,我得到以下内容,我猜这是因为脚本本身包含单词 searchd!所以在 cronjob 进程被执行的那一刻,$res 就变成了空的!
我重命名了脚本,问题解决了!

根 10769 7177 0 23:31 pts/1 00:00:00 /bin/bash /home/scripts/monitor_searchd.sh 根 10770 10769 0 23:31 pts/1 00:00:00 /bin/bash /home/scripts /monitor_searchd.sh

原来的问题:

我有一个 shell 脚本,当我在 shell 中调用它时它可以工作,但是当以以下方式放入 crontab 时,它不起作用(不发送电子邮件)。奇怪的是,cron 日志显示该进程每分钟都在运行!

    */1 * * * * 根 /home/scripts/monitor_searchd.sh

这是脚本:

    进程="java"                                                                                                                                                                                 
    res="`ps -ef|grep $process|grep -v grep`"

    如果 [ !-n "$res" ]; 然后
        echo "$进程已关闭!" | mail -s "$process is down" xxx@gmail.com
    菲

定时日志

    CROND[7370]:(根)CMD(/home/scripts/monitor_searchd.sh)

4

1 回答 1

0

能否请您补充:

echo "$process is down!" >> /tmp/monitor_searcd.log

在行之前mail?它可以帮助定位问题。

以及一对小评论:

请加

#!/bin/bash

到脚本的第一行。

改变

[ ! -n "$res" ]

[ -z "$res" ]
于 2012-07-13T06:02:34.677 回答