我有一个警报脚本,我试图阻止它向我发送垃圾邮件,因此我想设置一个条件,如果在过去一小时内发送了警报,则不再发送警报。现在我有一个 cron 作业,每分钟检查一次条件,因为我需要在满足条件时快速收到警报,但我不需要每分钟都收到电子邮件,直到问题得到控制。在 bash 中比较时间来完成此任务的最佳方法是什么?
到目前为止,最简单的方法是将时间戳存储为虚拟文件的修改时间。 GNUtouch
and date
命令可以设置/获取这些时间并执行日期计算。 Bash 有测试来检查文件是否比 (-nt
) 或早于 (-ot
) 其他。
例如,仅当最后一次通知是在一个多小时前时才发送通知:
touch -d '-1 hour' limit
if [ limit -nt last_notification ]; then
#send notification...
touch last_notification
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)