33800 Docs

← 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é."