How to write a bash script based on the modified of the files?

MichaelBalack used Ask the Experts™
This is using SuSE Linux Enterprise 12.3. We are thinking of writing a bash script to find out the whether a group of files with *.rf were updated for the past 4 hours. We wanted to ensure that at least 1 or more of these *.rf files in /usr6/MAPS4/ folder. We are thinking of checking based on the "Modified date" of the file. If at least 1 *.rf file was updated for the past 4 hours, that means thing is working fine. Else, if none were updated, an alert will be triggered.

How to write this bash script? Please show with example.

Thanks in advance.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Software Engineer
Distinguished Expert 2018
You still need to replace ALERT with your alerting code...

COUNTFILES=$( find /usr6/MAPS4/ -name '*.rf' -mmin 240 | wc -l )
if [ "$COUNTFILES" ne "0" ] ; then ALERT.... fi

Open in new window

David FavorFractional CTO
Distinguished Expert 2018

Likely noci's code will be best.

Another approach... If you have many files (1,000,000) or are trying to avoid any additional disk I/O on a busy system, use inotifywait.

inotifywait -mr --timefmt '%Y-%m-%d-%T' --format '%T %w%f %e' /var/log | while read time file event ; do

# code here to process data based on time + file + event
echo "$time $file $event"


Open in new window

MichaelBalackSenior System Engineer


Thanks for both experts, it works.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial