GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer les fichiers journaux à l'aide de la tâche cron

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

Linux
  1. Comment gérer les fichiers journaux à l'aide de Logrotate sous Linux

  2. Fichiers journaux Linux

  3. Utiliser rsync pour synchroniser les fichiers

  4. Comment supprimer des fichiers de plus de N jours à l'aide de tmpreaper sous Linux

  5. rechercher et supprimer des fichiers avec de l'espace à l'aide de la commande find sous Linux

Comment configurer une tâche Cron sous Linux

Comment supprimer des répertoires et des fichiers à l'aide de Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Surveiller les fichiers journaux Nginx à l'aide de ngxtop sur Ubuntu 20.04

Comment vérifier si une tâche Cron a été exécutée (journal Crontab)

Tester une tâche cron hebdomadaire