Utilisez un caractère générique. Et mettez-le simplement dans votre crontab
utilisez le crontab -e
option pour modifier vos tâches crontab.
Voir exemple :
* * * * * find /path/to/*.log -mtime +7 -exec rm -f {} \;
Juste pour incrémenter la réponse, consultez ce bel article sur la façon de travailler avec votre crontab
! sous Linux.
Vous éditez votre personnel crontab en exécutant crontab -e
.Ceci est enregistré dans /var/spool/cron/<username>
. Le fichier sera le nom d'utilisateur du propriétaire, donc root sera /var/spool/cron/root. Tout dans le fichier est exécuté en tant que propriétaire du fichier.
La syntaxe de crontab est la suivante :
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
Lorsque vous modifiez votre propre personnel crontab, via crontab -e
, vous omettez le champ du nom d'utilisateur, car l'utilisateur est déduit du nom de fichier (voir premier paragraphe).
Cela étant dit, votre entrée devrait ressembler à ceci :
0 5 * * * find /path/to/*.log -mtime +7 -delete
Cela s'exécutera tous les jours, à 5h00, heure système. Je ne pense pas que vous en ayez besoin pour qu'il s'exécute plus fréquemment que quotidiennement, étant donné que vous supprimez des fichiers qui durent 7 jours vieux.
S'il vous plaît, n'utilisez pas trop le -exec
option, lorsque le -delete
l'option fait exactement ce que vous voulez faire. L'exec crée un shell pour chaque fichier et gaspille excessivement les ressources système.
Lorsque vous avez terminé, vous pouvez utiliser crontab -l
pour lister votre crontab personnel.
ps. L'éditeur par défaut sur la plupart des systèmes Linux est vi, si vous ne connaissez pas vi, utilisez quelque chose de simple comme nano en définissant votre variable d'environnement export EDITOR=nano
find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;
Pour créer une tâche cron, placez un fichier contenant les éléments suivants dans le répertoire /etc/cron.daily :
#!/bin/sh
find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;