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

MichaelBalack
MichaelBalack used Ask the Experts™
on
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.
Comment
Watch Question

Do more with

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

#!/bin/bash
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

Commented:
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"

done

Open in new window

MichaelBalackSenior System Engineer

Author

Commented:
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