更新:当我在下面的脚本中回显$res时,我得到了以下内容,我想这是因为脚本本身包含单词searchd!!因此,在执行cronjob进程的那一刻,$res就变空了
我重新命名了脚本,问题解决了!
root 10769 7177 0 23:31分/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"];然后echo"$process关闭!"|mail-s"$processs关闭"xxx@gmail.comfi
cron日志
CROND[7370]:(root)CMD(/home/scripts/monitor_searchd.sh)
请添加:
echo "$process is down!" >> /tmp/monitor_searcd.log
在具有mail
的行之前?它可以帮助定位问题。
还有两个小备注:
请添加
#!/bin/bash
到脚本的第一行。
更改
[ ! -n "$res" ]
至
[ -z "$res" ]