将sendmail放在计时器上

时间:2014-06-24 18:29:15

标签: bash unix cron

我有这个bash脚本,用于检查其他项目中正在运行的进程。如果错误,则发出sendmail命令通知用户。我的问题是这段sendmail代码驻留在一个更大的脚本中,该脚本在CRON中设置为5分钟,以检查进程。

即使CRON每5分钟运行一次,如何告诉脚本每小时只发送一次电子邮件?

我有一个想法是为sendmail创建一个CRON条目,并在每次需要发送电子邮件时取消评论和评论?

Bash script to monitor process and sendmail if failed

如果您的代码我可以发布整个脚本,但它长达111行,是我提出的另一个问题的摘录

1 个答案:

答案 0 :(得分:0)

您可以创建一个标记文件来监控电子邮件是否已发送。

示例:

FLAG_EMAIL="/tmp/email_already_sent_this_hour" #choose what ever path you want
find $FLAG_EMAIL -mmin +60 -delete #check if flag file older than 60 minute and delete it
if [ -f $FLAG_EMAIL ] ; then
  sendmail....
  touch $FLAG_EMAIL
fi

您可能需要使用find命令,您可能需要使用" -exec rm -f {} \;"而不是-delete