Monday, January 3, 2022

[SOLVED] I want to make a conditional cronjob

Issue

I have a cron job that runs every hour. It accesses an xml feed. If the xml feed is unvailable (which seems to happen once a day or so) it creates a "failure" file. This "failure" file has some metadata in it and is erased at the next hour when the script runs again and the XML feed works again.

What I want is to make a 2nd cron job that runs a few minutes after the first one, looks into the directory for a "failure" file and, if it's there, retries the 1st cron job.

I know how to set up cron jobs, I just don't know how to make scripting conditional like that. Am I going about this in entirely the wrong way?


Solution

As the command to run, try:

/bin/bash -c 'test -e failurefile && retrycommand -someflag -etc'

It runs retrycommand if failurefile exists



Answered By - MattJ