summaryrefslogtreecommitdiff
path: root/alma-weekly.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 /alma-weekly.sh
parent13eb2d51c7284472efabc278bf9b7ec0b8575e47 (diff)
mirror scriptsHEADmaster
Diffstat (limited to 'alma-weekly.sh')
-rwxr-xr-xalma-weekly.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/alma-weekly.sh b/alma-weekly.sh
new file mode 100755
index 0000000..a875d13
--- /dev/null
+++ b/alma-weekly.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+# alma-weekly.sh
+# Summarize AlmaLinux client demographics across the past 7 days
+
+LOGDIR="/var/log/mirrors"
+OUTFILE="$LOGDIR/alma-weekly-$(date +%F).log"
+
+echo "=== AlmaLinux Weekly Summary ($(date)) ===" > "$OUTFILE"
+
+# Gather the last 7 daily logs
+FILES=$(ls -1t $LOGDIR/alma-summary-*.log 2>/dev/null | head -n 7)
+
+if [ -z "$FILES" ]; then
+ echo "No alma-summary logs found in $LOGDIR" >> "$OUTFILE"
+ exit 1
+fi
+
+# Roll up requests + unique clients per release
+awk '
+/requests/ {
+ reqs[$2]+=$1
+ clients[$2]+=$4
+}
+END {
+ for (r in reqs) {
+ printf "%-6s %10d requests %6d unique clients (7-day total)\n", r, reqs[r], clients[r]
+ }
+}' $FILES | sort -k2 -nr >> "$OUTFILE"
+
+echo "" >> "$OUTFILE"
+echo "=== Top 10 Clients by Requests (7-day total) ===" >> "$OUTFILE"
+
+# Top talkers (IP + release) across all 7 days
+awk '
+$2 ~ /^[0-9]/ {
+ count[$2" "$3]+=$1
+}
+END {
+ for (k in count) print count[k], k
+}' $FILES | sort -nr | head -n 10 >> "$OUTFILE"