Files
baremetal-basics/f2bt
T
2026-07-23 01:18:32 +00:00

41 lines
839 B
Bash

#!/usr/bin/env bash
##FAIL2BAN LOG ANALYZER
set -euo pipefail
clear
##CONFIG
log="${1:-/var/log/fail2ban.log}"
##CHECK
if [[ ! -f "$log" ]]; then
echo "Error: File not found: $log" >&2
exit 1
fi
##RUN
echo "==========================="
echo "FAIL2BAN DAILY TOTALS "
echo "==========================="
echo "DATE LINES "
echo "---------------------------"
sudo awk '
{
##FIELDS: $1 = date (YYYY-MM-DD), $2 = time
if ($1 ~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/) {
counts[$1]++
}
}
END {
n = asorti(counts, sorted, "@ind_str_asc")
for (i = 1; i <= n; i++) {
printf "%s %6d\n", sorted[i], counts[sorted[i]]
}
}
' "$log" | column -t -R 2
echo "---------------------------"
tot=$(wc -l < "$log" | tr -d ' ')
printf "TOTAL: %s LINES\n" "$tot"
echo "==========================="