summaryrefslogtreecommitdiff
path: root/mirror-watchdog.sh
diff options
context:
space:
mode:
authordoc <doc@filenotfound.org>2025-10-01 20:35:47 +0000
committerdoc <doc@filenotfound.org>2025-10-01 20:35:47 +0000
commit772152a5810aa8c4e03cf167381aadc4ec00499f (patch)
treeba9418142f88622da878d9a3483c5da2da3e5c83 /mirror-watchdog.sh
parent13eb2d51c7284472efabc278bf9b7ec0b8575e47 (diff)
mirror scriptsHEADmaster
Diffstat (limited to 'mirror-watchdog.sh')
-rwxr-xr-xmirror-watchdog.sh29
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"