I have a directory with crash logs, and I'd like to use a conditional statement in a bash script based on a find command.
The log files are stored in this format:
I want the if statement to only return true if there is a crash log for a specific app which has been modified in the last 5 minutes. The
find command that I would use is:
find /var/log/crashes -name app-\*\.log -mmin -5
I'm not sure how to incorporate that into an
if statement properly. I think this might work:
if [ test `find /var/log/crashes -name app-\*\.log -mmin -5` ] then
service myapp restart
There are a few areas where I'm unclear:
- I've looked at the if flags but I'm not sure which one, if any, that I should use.
- Do I need the
testdirective or should I just process against the results of the find command directly, or maybe use
find... | wc -lto get a line count instead?
- Not 100% necessary to answer this question, but
testis for testing against return codes that commands return? And they are sort of invisible - outside of
stderr? I read the
manpage but I'm still pretty unclear about when to use
testand how to debug it.