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
multilogde Dan Bernstein de daemontools - Le
multilogde Bruce Guenter de daemontools-encore - Le
s6-logde Laurent Bercot depuis s6 - Le
svlogdde Gerrit Pape de runit - Le
tinylogde Wayne Marshall du perp - Mon
cyclogde nosh
Outils pour traiter ensuite multilog -les ensembles de fichiers journaux au format incluent, entre autres :
- Le
multilog-watchde Russ Allbery logrange- Le
multilog-stamptailde Paul Kremer - Mon
follow-log-directoriesde nosh - Mon
export-to-rsyslogde 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
logrotateounewsyslogdans 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