2012-07-13 120 views
0

更新: 當我在下面的腳本中回顯$ res時,我得到以下,我想這是因爲腳本本身包含單詞searchd!所以在cronjob進程被執行的瞬間,$ res變爲空的!
我重命名了腳本,問題解決了!cronjob與電子郵件不工作

 
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" [email protected] 
    fi 

cron的日誌

 

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

回答

0

能否請您補充:

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

mail前行?它可以幫助本地化問題。

而對小的言論:

請加

#!/bin/bash 

到腳本的第一行。

變化

[ ! -n "$res" ] 

[ -z "$res" ] 
+0

請參閱編輯上面 – 2012-07-13 06:28:38

+0

@JunbaTester:你可以寫的解決方案爲這個問題的答案,並接受它。這對所有人來說都會更好:) – 2012-07-13 07:32:38