diff options
Diffstat (limited to 'mirror-watchdog.sh')
-rwxr-xr-x | mirror-watchdog.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mirror-watchdog.sh b/mirror-watchdog.sh new file mode 100755 index 0000000..b0f4c43 --- /dev/null +++ b/mirror-watchdog.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Mirror watchdog: scans /var/lock for stale rsync locks +# Logs results to /var/log/mirror-watchdog.log +# + +LOGFILE="/var/log/mirror-watchdog.log" +LOCKDIR="/var/lock" +MAXAGE=10800 # 3 hours in seconds + +echo "[$(date '+%F %T')] Running mirror watchdog..." >> "$LOGFILE" + +for lock in gentoo hbsd void slackware rocky debian arch-repos arch-iso; do + LOCKFILE="$LOCKDIR/${lock}.lock" + + if [ -f "$LOCKFILE" ]; then + AGE=$(( $(date +%s) - $(stat -c %Y "$LOCKFILE") )) + if [ "$AGE" -gt "$MAXAGE" ]; then + echo "[$(date '+%F %T')] WARNING: $LOCKFILE is stale (age: ${AGE}s)" >> "$LOGFILE" + else + echo "[$(date '+%F %T')] OK: $LOCKFILE present (age: ${AGE}s)" >> "$LOGFILE" + fi + else + echo "[$(date '+%F %T')] OK: $LOCKFILE not found" >> "$LOGFILE" + fi +done + +echo "[$(date '+%F %T')] Watchdog run complete." >> "$LOGFILE" +echo >> "$LOGFILE" |