#!/bin/bash TIMENOW=$(date '+%Y-%m-%d_%H:%M:%S'); LOCKFILE="/srv/mirror/scripts/.lock"; WAITLIMIT=30; LOGFILE="/srv/mirror/logs/current.log" SYNCLOG="/srv/mirror/logs/master.log" cleanup() { echo "Cleaning up..."; rm -f "$LOCKFILE"; exit; } trap cleanup INT TERM KILL EXIT if [ -f $LOCKFILE ]; then echo "Previous session $(cat $LOCKFILE) exists." | tee -a ${SYNCLOG} while [ $WAITLIMIT -ne 0 ]; do echo "Waiting for previous session.. ${WAITLIMIT} tries left.." | tee -a ${SYNCLOG}; sleep 60; WAITLIMIT=$(($WAITLIMIT-1)); if [ ! -f $LOCKFILE ]; then break; fi done echo "Sync job at $TIMENOW blocked by previous job $(cat $LOCKFILE)." | tee -a ${SYNCLOG} >(/srv/mirror/scripts/alert.sh $(cat <&0)) exit; fi echo $$ > $LOCKFILE; echo "Starting sync job at $TIMENOW, $$" | tee ${LOGFILE} | tee -a ${SYNCLOG} { /srv/mirror/scripts/sync.sh archlinux & /srv/mirror/scripts/sync.sh debian & /srv/mirror/scripts/sync.sh rpmfusion & wait; # /srv/mirror/scripts/sync.sh ubuntu_cd & # /srv/mirror/scripts/sync.sh ubuntu_cd_old & # /srv/mirror/scripts/sync.sh debian_cd & # wait; # /srv/mirror/scripts/sync.sh linux & # wait; } 2>&1 | tee -a ${LOGFILE} | tee -a ${SYNCLOG} wait; echo Finished sync job $$ $TIMENOW at $(date '+%Y-%m-%d_%H:%M:%S') | tee -a ${LOGFILE} | tee -a ${SYNCLOG} rm $LOCKFILE;