Como evitar que el server se quede sin espacio debido a la cantidad de logs que quedan almacenados en la ruta “/var/log/”?
Generalmente los servers se quedan sin espacio debido a la cantidad de logs que quedan almacenados. Una posible solución seria crear un script en linux que borre los logs que superen los 30 días de almacenamiento.
Luego cronear este script para que corra todos los días.
Primeros Pasos
1_Ingresamos a nuestra terminal WSL y nos localizamos en algún directorio de nuestro equipo.
2_Con el comando vim crearemos un script “borrar.log.sh”
3_Tocaremos la tecla Insert para poder editar el archivo y luego ingresaremos el código que permita borrar los logs que superen los 30 días.
Por ultimo grabamos el archivo "borra_log.sh apretando la tecla Esc y escribimos “:wq”
4_Descripción del script
La línea “#!/bin/bash” es conocida como la línea de “hashbang”. Es una especie de indicador que le dice al sistema operativo que el script debe ser ejecutado utilizando el intérprete de Bash
Se define 3 variables:
Directorio de logs
log_dir="/var/log/"
Patrón de archivos de registro a borrar (puedes ajustarlo)
archivos_log=“log”
Días a mantener antes de borrar
dias_a_mantener=30
Ejecuta el primer comando:
Cambia al directorio de registros "/var/log/"
cd “$log_dir” || exit 1
La línea de código cd “$log_dir” || exit 1 se utiliza comúnmente en scripts de shell para cambiar el directorio de trabajo a un directorio específico ($log_dir) y, si no es posible cambiar al directorio, salir del script con un código de salida de 1, lo que indica un error.
Ejecuta el segundo comando:
Elimina archivos de registro más antiguos que $dias_a_mantener
find “$log_dir” -name “$archivos_log*” -mtime +$dias_a_mantener -exec rm {} ;
Este comando busca en la ruta “/var/log” (find “$log_dir”) todos los archivos que contenga la palabra log (-name “$archivos_log*”) selecciona los que excedan determinada cantidad de días (-mtime +$dias_a_mantener ), por ultimo ejecuta el comando rm en los archivos encontrados por find.
5_Ejecutamos el scrip y vemos que el archivo no tiene permiso de ejecución
6_Agregamos los premisos de ejecución de la siguiente manera:
7_ Por ultimo croneamos el script para que se ejecute todos los días a las 06:00 a.m.