← Retour
#!/bin/bash
# ===========================================
# NGINX LOGS ARCHIVE - Rétention 3 mois
# ===========================================
# Copie quotidienne des logs nginx vers stock_8to
# Rotation automatique après 90 jours
ARCHIVE_DIR="/stock_8to/33800-stack/monitoring/downloads/logs/nginx-archive"
NGINX_HOST="192.168.1.104"
TODAY=$(date +%Y-%m/%d)
RETENTION_DAYS=90
echo "[$(date)] Début archivage logs nginx..."
# Créer le dossier du jour
mkdir -p "$ARCHIVE_DIR/$TODAY"
# Copier tous les logs nginx (access + error par site)
echo "[$(date)] Copie des logs depuis nginx.local..."
scp -o ConnectTimeout=10 -o StrictHostKeyChecking=no \
gouroubleu@$NGINX_HOST:/var/log/nginx/*.log \
"$ARCHIVE_DIR/$TODAY/" 2>/dev/null
# Compter les fichiers copiés
COUNT=$(ls -1 "$ARCHIVE_DIR/$TODAY/" 2>/dev/null | wc -l)
SIZE=$(du -sh "$ARCHIVE_DIR/$TODAY/" 2>/dev/null | cut -f1)
echo "[$(date)] $COUNT fichiers copiés ($SIZE)"
# Supprimer les archives > 90 jours
echo "[$(date)] Nettoyage archives > $RETENTION_DAYS jours..."
DELETED=$(find "$ARCHIVE_DIR" -type f -mtime +$RETENTION_DAYS -delete -print | wc -l)
echo "[$(date)] $DELETED fichiers supprimés"
# Supprimer les dossiers vides
find "$ARCHIVE_DIR" -type d -empty -delete 2>/dev/null
# Stats totales
TOTAL_SIZE=$(du -sh "$ARCHIVE_DIR" 2>/dev/null | cut -f1)
TOTAL_DAYS=$(find "$ARCHIVE_DIR" -mindepth 2 -maxdepth 2 -type d | wc -l)
echo "[$(date)] Archive totale: $TOTAL_SIZE ($TOTAL_DAYS jours)"
echo "[$(date)] Archivage terminé."