Oui, il y a un moyen approprié : Vous ne devez pas clair journaux du tout. Vous faire pivoter les. La rotation consiste à basculer la sortie du journal vers un nouveau fichier, sous le même nom, les N fichiers journaux précédents étant conservés sous un ensemble de N noms de fichiers connexes.
La rotation des journaux dépend de la manière dont on les écrit. C'est un point souvent négligé. Certaines des réponses ici l'abordent au moins, en mentionnant que certains programmes de journalisation conservent un descripteur de fichier ouvert pour le fichier de journalisation, de sorte que la simple suppression du fichier ne libérera pas l'espace, ni même ne basculera la sortie vers un nouveau fichier de journalisation.
Si le programme qui écrit le fichier journal est multilog
de la daemontools
paquet par exemple, vous ne faites rien du tout pour faire tourner les journaux - pas de scripts manuels, pas de cron
emplois. Dites simplement multilog
que la sortie du journal est dans un répertoire, et il maintiendra lui-même un ensemble de N fichiers journaux automatiquement tournés et de taille limitée dans ce répertoire.
Si le programme qui écrit les fichiers journaux est svlogd
de la runit
paquet pour un autre exemple, il en va de même. Vous ne faites rien d'autre que de pointer l'outil vers un répertoire. Il maintiendra lui-même un ensemble de N fichiers journaux automatiquement tournés et de taille limitée dans ce répertoire.
Si vous utilisez rsyslog
pour écrire des fichiers journaux, puis on peut demander au programme de journalisation de s'arrêter lorsque le fichier de journalisation atteint une certaine taille et d'exécuter un script. . Vous devez écrire la partie principale du script, pour renommer le fichier journal et supprimer les anciens fichiers journaux en fonction des contraintes de taille totale, mais au moins le programme de journalisation a fermé le fichier et mis en pause l'écriture du journal pendant que cela se produit.
L'ancien syslogd
la manière de faire tourner les bûches, toujours attendu par les programmes de journalisation tels que syslog-ng et comme l'illustrent des outils tels que logrotate
mentionné par djangofan
dans une autre réponse ici, est un peu plus aléatoire. On exécute un cron
qui renomme périodiquement les fichiers journaux et redémarre le démon de journalisation (en utilisant le superviseur de démon sous lequel il est exécuté). Le problème avec cette méthode, bien sûr, est qu'elle n'impose pas de limite de taille globale. Lors des semaines lentes, on peut avoir N très petits fichiers journaux quotidiens, alors que lors des journées chargées, on peut avoir un très gros fichier journal qui dépasse largement la taille limite.
C'est pourquoi des outils plus récents et plus performants comme multilog
y svlogd
ont des options de configuration de la taille des fichiers et vérifient la taille des fichiers journaux eux-mêmes, bien sûr. Le monde a appris que le fait d'interroger les journaux selon un calendrier avec cron
emplois, ou même un logrotate
démon, laisse à Windows la possibilité de se tromper de taille, et que l'endroit approprié pour effectuer ces vérifications, et donc rigoureusement L'application des limites de taille définies par l'administrateur afin que les fichiers journaux n'engloutissent jamais la partition sur laquelle ils se trouvent se trouve dans le programme qui écrit les fichiers en premier lieu.
3 votes
Si vous voulez juste voir la fin du fichier alors queue est votre ami. tail /var/log/mail.log pour afficher les 5 dernières lignes. tail -f /var/log/mail.log pour voir toutes les lignes écrites à la fin du fichier.
0 votes
serverfault.com/questions/285843/