#!/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"