up
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
# Script de limpieza de logs
|
||||
# Ejecuta a las 3:00 AM
|
||||
|
||||
set -e
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Iniciando limpieza de logs..."
|
||||
|
||||
# Directorio de logs
|
||||
LOGS_DIR="/var/www/html/logs"
|
||||
|
||||
if [ ! -d "$LOGS_DIR" ]; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Directorio de logs no encontrado: $LOGS_DIR"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Contar archivos antes de limpiar
|
||||
BEFORE_COUNT=$(find "$LOGS_DIR" -name "*.log" -type f | wc -l)
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Archivos de log encontrados: $BEFORE_COUNT"
|
||||
|
||||
# Eliminar logs más antiguos de 30 días
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Eliminando logs antiguos (>30 días)..."
|
||||
find "$LOGS_DIR" -name "*.log" -type f -mtime +30 -delete
|
||||
|
||||
# Comprimir logs entre 7-30 días
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Comprimiendo logs antiguos (7-30 días)..."
|
||||
find "$LOGS_DIR" -name "*.log" -type f -mtime +7 -mtime -30 -exec gzip {} \; 2>/dev/null || true
|
||||
|
||||
# Limpiar logs .gz más antiguos de 30 días
|
||||
find "$LOGS_DIR" -name "*.log.gz" -type f -mtime +30 -delete
|
||||
|
||||
# Contar archivos después de limpiar
|
||||
AFTER_COUNT=$(find "$LOGS_DIR" -name "*.log" -o -name "*.log.gz" -type f | wc -l)
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Archivos de log restantes: $AFTER_COUNT"
|
||||
|
||||
# Calcular espacio liberado
|
||||
SPACE_USED=$(du -sh "$LOGS_DIR" | cut -f1)
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Espacio usado por logs: $SPACE_USED"
|
||||
|
||||
# Truncar logs muy grandes (>100MB)
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Truncando logs muy grandes..."
|
||||
find "$LOGS_DIR" -name "*.log" -type f -size +100M -exec sh -c 'echo "Log truncado el $(date)" > "$1"' _ {} \;
|
||||
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Limpieza de logs completada"
|
||||
Reference in New Issue
Block a user