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 {} \;