1

Como evitar que el server se quede sin espacio debido a la cantidad de logs que quedan almacenados en la ruta “/var/log/”?

<h1>Script para reducir logs en la ruta “/var/log/”</h1>

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.

Captura de pantalla de 2023-11-02 21-38-25.png

2_Con el comando vim crearemos un script “borrar.log.sh

Captura de pantalla de 2023-11-02 21-41-31.png

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.

Captura de pantalla de 2023-11-03 20-24-51.png
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

Captura de pantalla de 2023-11-03 11-05-13.png

6_Agregamos los premisos de ejecución de la siguiente manera:

Captura de pantalla de 2023-11-03 11-21-56.png

7_ Por ultimo croneamos el script para que se ejecute todos los días a las 06:00 a.m.

Captura de pantalla de 2023-11-03 12-32-11.png
Escribe tu comentario
+ 2