Files
svr/usr/bin/archive_connections
T

28 lines
832 B
Bash
Raw Normal View History

2026-02-17 20:57:36 +01:00
#!/bin/bash
SRC=/var/log/connections/lasts.tcpd
DST=/var/log/connections/archive
DATE=$(date "+%y%m%d-%H%M")
MAXSIZE=$((1024*1024*1024)) # 1 Go
mkdir -p "$DST"
# 1️⃣ Archivage IP en .txt
find "$SRC" -name "*.log" -mmin -30 \
| xargs grepip \
> "$DST/connections-$DATE.txt"
# 2️⃣ Archiver les logs dans un tar.gz
ARCHIVE="$DST/logs-$DATE.tar.gz"
find "$SRC" -name "*.log" -print0 | tar --null -czf "$ARCHIVE" --remove-files -T -
# 3️⃣ Vérifier la taille totale des archives et supprimer les plus anciennes si >1 Go
total_size=$(du -cb "$DST"/*.tar.gz 2>/dev/null | tail -1 | awk '{print $1}')
while [ "$total_size" -ge $MAXSIZE ]; do
oldest=$(ls -1t "$DST"/*.tar.gz | tail -1)
[ -f "$oldest" ] && rm -f "$oldest"
total_size=$(du -cb "$DST"/*.tar.gz 2>/dev/null | tail -1 | awk '{print $1}')
done