Nettoyage des files journaux sous Linux

J'utilise une machine virtuelle kvm ubuntu 10.04 pour tester certaines fonctionnalités d'un module kernel. Je grep à travers les files /var/log pour observer les messages du kernel sur ce module.

Pour démarrer à partir d'un état propre, je supprime les files journaux contenant les anciens messages en exécutant rm -rf /var/log/* , puis en redémarrant la machine virtuelle. Cependant, après le redémarrage, les nouveaux files journaux contiennent toujours ces anciens messages de journal. Il faut environ 5-6 cycles de suppression de files et de redémarrage de la machine virtuelle pour finalement se débarrasser de ces messages du file journal.

Pourquoi cela arrive-t-il? Existe-t-il un moyen plus simple de nettoyer les files journaux?

La façon la plus simple de nettoyer les vieux journaux n'est pas de les supprimer.

La meilleure façon de nettoyer les journaux est soit logrotate comme Hanan N. logrotate ou:

 find /var/log -type f -exec /bin/cp /dev/null {} \; 

pour chacun des files journaux. Je ne sais pas exactement à quelles inputs de journal vous faites allusion depuis le démarrage précédent, mais si vous voulez que cette opération soit effacée après le démarrage, vous pouvez placer la command ci-dessus dans le script /etc/rc.local . .

Normalement, vous ne souhaitez pas effacer les journaux car ils sont votre sharepoint départ pour tout dépannage.

Pour ce que vous faites, il peut être préférable d'append un file journal supplémentaire pour les messages du kernel. Certains démons de journal vous permettent d'effectuer des correspondances sur les loggings en cours d'écriture, de sorte que vous obtenez uniquement les loggings appropriés dans votre file. Vous pouvez ensuite faire pivoter, supprimer ou renommer les files entre les exécutions. (Si vous ne redémarrez pas, vous devrez peut-être envoyer un signal HUP au démon de journal pour qu'il rouvre ses files.

Il y a aussi des outils qui vont extraire seulement les nouveaux loggings du journal. L'utilitaire logcheck package logcheck est un de ces utilitaires. Il peut être exécuté avec un autre file de décalage.

Il existe d'autres outils qui regardent les journaux pour les loggings correspondant à un model et qui les signalent. L'un d'eux pourrait bien fonctionner pour vous.

Cela semble fonctionner correctement (sur Ubuntu LTS 14.04) en tournant vos journaux vers un journal propre, puis en supprimant les anciennes inputs de journal. Il est similaire à la méthode cp / dev / null, mais je pense que c'est plus propre. ymmv

 logrotate --force /etc/logrotate.conf find /var/log/ -name '*[0-5]*' -exec rm {} \;