28 lines
832 B
Bash
28 lines
832 B
Bash
|
|
#!/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
|
||
|
|
|