#!/usr/bin/env bash # Author: H2 invent GmbH # License: AGPLv3 # Usage: Use the helper script in cronjobs in hosts or containers. # The cron_lock can be shared so the job will only be executed one. TIME=$(shuf -i 0-900 -n1) sleep 0.$TIME echo "Sleep for 0.$TIME" echo "Checking cron_lock file" FILE=$1 if [ ! -f $FILE ] then echo $(hostname) > $FILE echo "$(date) -- START CRON_LOCK -- $(hostname)" >> $FILE.log $2 if [ $? -ne 0 ] then echo "FAILED -- $(date) -- $(hostname)" >> $FILE.log else echo "OK -- $(date) -- $(hostname)" >> $FILE.log fi else echo "Other Server is running cron job" fi sleep 10.$TIME if [ -f $FILE ] then echo "$(date) -- REMOVE CRON_LOCK -- $(hostname)" >> $FILE.log rm $FILE fi