Datum: 2001-06-27
Quelle: suse-linux
Auf ähnliche Weise wie in Einen crontab-Job alle 2 Tage ausführen beschrieben kann man auch die Ausführung alle X Tage realisieren.
# Aufruf: wrapper Intervall Programm / usage: wrapper interval program INTERVAL=$1 JOB=$2 RUN_FILE=/var/run/cron_x_days.`basename $JOB` # keine Pruefungen bisher - Dein Job ;-) / no checks until now - your task ;-) NOW=`expr \`date +%s\` / 86400` if test -f $RUN_FILE; then LAST=`cat $RUN_FILE` test `expr $NOW - $LAST` -lt $INTERVAL && exit 0 fi $JOB echo $NOW >$RUN_FILE
Es wird eine Datei für den Zeitstempel benutzt, in sie wird mit $NOW der Startzeitpunkt in Tagen seit 01.01.1970 eingetragen, der gegen das aktuelle Startdatum gecheckt wird. Ist die Differenz kleiner als das vorgegebene Intervall, bricht das Script ab. Ansonsten wird der neue Startwert in die Datei eingetragen.