Rob Wells Rob Wells - 2 years ago 92
Bash Question

Determining age of a file in shell script


I need to see if a specific file is more than 58 minutes old from a sh shell script. I'm talking straight vanilla Solaris shell with some POSIX extensions it seems.

I've thought of doing a

touch -t YYYYMMDDHHmm.SS /var/tmp/toto

where the timestamp is 58 minutes ago and then doing a

find ./logs_dir \! -newer /var/tmp/toto -print

We need to postprocess some log files that have been retrieved from various servers using mirror. Waiting for the files to be stable is the way this team decides if the mirror is finished and hence that day's logs are now complete and ready for processing.

Any suggestions gratefully received.


Answer Source

You can use different units in the find command, for example:

find . -mtime +0h55m

Will return any files with modified dates older than 55 minutes ago.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download