diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-03-15 22:02:41 +0100 |
---|---|---|
committer | syncer <root@plopp.spline.de> | 2012-03-15 22:02:41 +0100 |
commit | 6e1dd2516f260a0361d65b58509106a615d0c149 (patch) | |
tree | ffd6c02e8b1b21e3182a3ed502f8644898d4db98 /bin/cron_wrapper.sh | |
parent | 657d1fc484fa0b21b979525a92ace5c9e6f63da2 (diff) | |
download | mirror-sync-6e1dd2516f260a0361d65b58509106a615d0c149.tar.gz mirror-sync-6e1dd2516f260a0361d65b58509106a615d0c149.tar.bz2 mirror-sync-6e1dd2516f260a0361d65b58509106a615d0c149.zip |
syncer scripts: move locking to cronwrapper
now lockfile-progs is used as replacement for the lockfile command of procmail
Diffstat (limited to 'bin/cron_wrapper.sh')
-rwxr-xr-x | bin/cron_wrapper.sh | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/bin/cron_wrapper.sh b/bin/cron_wrapper.sh index 4e25802..82dea79 100755 --- a/bin/cron_wrapper.sh +++ b/bin/cron_wrapper.sh @@ -39,6 +39,7 @@ CRON_SCRIPT_BASENAME="$(basename ${CRON_SCRIPT} ".sh")" CRON_SCRIPT_LOGNAME="${CRON_SCRIPT_BASENAME#sync-}" ERROR_LOG="/var/log/sync/${CRON_SCRIPT_LOGNAME}_error.log" LOG="/var/log/sync/${CRON_SCRIPT_LOGNAME}.log" +LOCKFILE="/var/lock/$(basename $0)" create_and_check_log "${ERROR_LOG}" create_and_check_log "${LOG}" @@ -49,6 +50,12 @@ ERROR_TMP=$(mktemp -t "${CRON_SCRIPT_BASENAME}.XXXXXXXX") # damit der cronscript dateiname nicht mehr enthalten ist shift 1 +# locking, cron script should not executed while the last +# instance is running +lockfile-create "$LOCKFILE" || exit 1 +lockfile-touch "$LOCKFILE" & +TOUCH="$!" + # log header LOG_HEADER="-------------------- $(date) --------------------" echo "${LOG_HEADER}" >> "${LOG}" @@ -58,7 +65,6 @@ ${CRON_SCRIPT} $@ >> "${LOG}" 2> "${ERROR_TMP}" if [ $(grep -v "^\s*$" "${ERROR_TMP}" | wc -l) -gt 0 ] then - if [ "$(date -r${ERROR_LOG} +%F)" != "$(date +%F)" ] then cat "${ERROR_LOG}" @@ -72,3 +78,7 @@ then fi rm "${ERROR_TMP}" + +# cleanup lockfile +kill "$TOUCH" +lockfile-remove "$LOCKFILE" |