summaryrefslogtreecommitdiff
path: root/mirror-watchdog.sh
blob: b0f4c4359a41707ea5865c60d3e75b02d85a197b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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"