I have an alert script that I am trying to keep from spamming me so I’d like to place a condition that if an alert has been sent within, say the last hour, to not send another alert. Now I have a cron job that checks the condition every minute because I need to be alerted quickly when the condition is met but I don’t need to get the email every munite until I get the issue under control. What is the best way to compare time in bash to accomplish this?
Share
By far the easiest is to store time stamps as modification times of dummy files. GNU
touchanddatecommands can set/get these times and perform date calculations. Bash has tests to check whether a file is newer than (-nt) or older than (-ot) another.For example, to only send a notification if the last notification was more than an hour ago: