cronjob与电子邮件无法正常工作

时间:2012-07-13 05:41:11

标签: bash shell crontab

更新: 当我在下面的脚本中回显$ res时,我得到以下内容,我想这是因为脚本本身包含了searchd这个词!所以在cronjob进程执行的瞬间,$ res变为空!  我重命名了剧本,问题解决了!

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

原始问题:

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


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

这是脚本:


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

    if [ ! -n "$res" ]; then
        echo "$process is down!" | mail -s "$process is down" xxx@gmail.com
    fi

cron log


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

1 个答案:

答案 0 :(得分:0)

你可以补充一下:

echo "$process is down!" >> /tmp/monitor_searcd.log
mail行前的

?它可以帮助解决问题的本地化。

和一对小言论:

请添加

#!/bin/bash

到剧本的第一行。

更改

[ ! -n "$res" ]

[ -z "$res" ]