GNU/Linux >> Tutoriales Linux >  >> Linux

Eliminar archivos de registro usando el trabajo cron

Usar comodín. Y simplemente ponlo en tu crontab usa el crontab -e opción para editar sus trabajos crontab.
Ver ejemplo:

* * * * *  find  /path/to/*.log -mtime +7 -exec rm -f {} \; 

Solo para incrementar la respuesta, consulte este buen artículo sobre cómo trabajar con su crontab ! en Linux.


Editas tu personal crontab ejecutando crontab -e .Esto se guarda en /var/spool/cron/<username> . El archivo será el nombre de usuario del propietario, por lo que la raíz sería /var/spool/cron/root. Todo en el archivo se ejecuta como propietario del archivo.

La sintaxis de crontab es la siguiente:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

Cuando está editando su propio personal crontab, a través de crontab -e , omita el campo de nombre de usuario, porque el usuario se deduce del nombre de archivo (consulte el primer párrafo).

Dicho esto, su entrada debería verse así:

0 5 * * *  find  /path/to/*.log -mtime +7 -delete

Esto se ejecutará todos los días, a las 5:00 a. m., hora del sistema. No creo que necesite que se ejecute con más frecuencia que todos los días, dado que está eliminando archivos que duran 7 días. viejo.

Por favor, no use en exceso el -exec opción, cuando el -delete opción hace exactamente lo que quieres hacer. El ejecutivo bifurca un shell para cada archivo y desperdicia excesivamente los recursos del sistema.

Cuando haya terminado, puede usar crontab -l para listar su crontab personal.

PD. El editor predeterminado en la mayoría de los sistemas Linux es vi, si no conoce vi, use algo simple como nano configurando su variable de entorno export EDITOR=nano


find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

Para crear un trabajo cron, coloque un archivo que contenga lo siguiente en el directorio /etc/cron.daily:

#!/bin/sh
find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

Linux
  1. Uso de at para trabajos cron de un solo uso en Linux

  2. [SOLUCIONADO] Cron job wget escribiendo archivos en el directorio raíz

  3. Uso de una secuencia de comandos contenedora de Cron

  4. ¿Usando Notify-send con Cron?

  5. Usando rsync para sincronizar archivos

Cómo configurar un trabajo cron en Linux

Cómo eliminar directorios y archivos usando Linux

Cómo eliminar archivos y directorios usando la línea de comandos de Linux

Monitoree los archivos de registro de Nginx usando ngxtop en Ubuntu 20.04

Cómo comprobar si se ha ejecutado un trabajo cron (registro crontab)

busque y elimine archivos con espacio usando el comando de búsqueda en Linux