我有这个bash脚本,用于检查其他项目中正在运行的进程。如果错误,则发出sendmail命令通知用户。我的问题是这段sendmail代码驻留在一个更大的脚本中,该脚本在CRON中设置为5分钟,以检查进程。
即使CRON每5分钟运行一次,如何告诉脚本每小时只发送一次电子邮件?
我有一个想法是为sendmail创建一个CRON条目,并在每次需要发送电子邮件时取消评论和评论?
Bash script to monitor process and sendmail if failed
如果您的代码我可以发布整个脚本,但它长达111行,是我提出的另一个问题的摘录
答案 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