mirror of
https://github.com/morgan9e/mirror
synced 2026-04-14 00:14:15 +09:00
55 lines
1.3 KiB
Bash
55 lines
1.3 KiB
Bash
#!/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;
|