J'ai un cronjob qui exécute des scripts Python et ils génèrent un fichier journal massif. Comment puis-je les empêcher de devenir si gros? Ce serait parfait si le fichier était supprimé une fois qu'il avait atteint une certaine taille. Parce que tous les quelques jours, le fichier fait maintenant 50 Mo mais devient beaucoup plus volumineux et prend une éternité pour télécharger et analyser un bogue sur une connexion Internet lente. Je ne veux vraiment voir que les 1000 dernières lignes pour voir où le script s'est mal passé.
Je sais que je pourrais coder quelque chose pour faire cela, mais je me demandais simplement si Linux avait quelque chose que je ne connaissais pas. J'imagine que les gros fichiers journaux sont un problème courant. Merci.
Réponse acceptée :
Habituellement, vous ne devez enregistrer que l'activité qui vous intéresse et devez configurer le programme pour qu'il soit moins verbeux si possible.
Comme suggéré, en utilisant logrotate est la manière habituelle de traiter les fichiers journaux. Mais au lieu d'ajouter du contenu à /etc/logrotate.conf
vous devez ajouter votre propre travail à /etc/logrotate.d/
, sinon vous auriez à examiner plus de différences de fichiers de configuration lors des mises à niveau de version.
Voici un exemple que j'ai créé pour un script php :
/var/log/some-php-app/*.log {
daily
rotate 10
delaycompress
compress
notifempty
missingok
}
/var/log/some-php-app/*.log
– Est le chemin où se trouve le(s) fichier(s) journal(s) et son nom. Comme vous pouvez le constater, vous pouvez également utiliser des caractères génériques pour appliquer la règle à plusieurs fichiers journaux.- quotidiennement – Fait pivoter les fichiers journaux quotidiennement. Alternatives :horaire, hebdomadaire, mensuel, annuel, maxsize, maxage
- faire pivoter compter - Les fichiers sont tournés plusieurs fois avant d'être supprimés ou envoyés à l'adresse spécifiée dans une directive de messagerie.
- delaycompress – Reporte la compression du fichier journal précédent au cycle de rotation suivant.
- compresser – Compresse les anciennes versions des fichiers journaux avec gzip. Vous pouvez utiliser
zless
au lieu deless
pour afficher les fichiers. - notifempty – Ne fait pas tourner le journal s'il est vide.
- manquantok – Passe à la tâche de rotation suivante sans émettre de message d'erreur, lorsque le fichier journal est manquant.
Consultez la page de manuel logrotate pour plus d'options.