Vous pouvez également diriger la sortie via des outils conçus dans le but principal de conserver des ensembles de fichiers journaux à taille limitée et à rotation automatique, tels que :
- Le
multilog
de Dan Bernstein de daemontools - Le
multilog
de Bruce Guenter de daemontools-encore - Le
s6-log
de Laurent Bercot depuis s6 - Le
svlogd
de Gerrit Pape de runit - Le
tinylog
de Wayne Marshall du perp - Mon
cyclog
de nosh
Outils pour traiter ensuite multilog
-les ensembles de fichiers journaux au format incluent, entre autres :
- Le
multilog-watch
de Russ Allbery logrange
- Le
multilog-stamptail
de Paul Kremer - Mon
follow-log-directories
de nosh - Mon
export-to-rsyslog
de nosh
Autres lectures
- Jonathan de Boyne Pollard (2015). "Enregistrement". La famille daemontools . Réponses fréquemment données.
- Jonathan de Boyne Pollard (2016). N'utilisez pas
logrotate
ounewsyslog
dans ce siècle. . Réponses fréquemment données. - https://unix.stackexchange.com/a/326166/5132
le rotatelogs
outil livré avec apache (dans le bin
dir) (voir docs) prend l'entrée de stdin et fait pivoter le journal après un certain laps de temps
J'ai eu un problème similaire et j'avais initialement abandonné logrotate mais il s'est avéré que logrotate peut bien le faire, la directive clé est "copytruncate ". Pour une raison quelconque, ce terme n'est apparu sur aucune des recherches que j'ai effectuées sur Google, j'ajoute donc cette réponse pour clarifier exactement comment l'utiliser dans ce cas.
L'astuce est que cela ne fonctionne que si la redirection se fait avec ">> " (ajouter) au lieu de "> " (créer).
Fichier de configuration (truncate.cfg) :
/tmp/temp.log {
size 10M
copytruncate
rotate 4
maxage 100
}
Programme de test (n'abandonne jamais le fichier). Vous pouvez le voir remplir le disque et bien que la suppression du fichier journal semble fonctionner, cela ne libérera pas d'espace sur le disque :
cat /dev/urandom >> /tmp/temp.log
Exécution de la rotation du journal :
logrotate truncate.cfg