Alternativně můžete výstup zpracovat pomocí nástrojů navržených s primárním účelem udržovat sady souborů protokolu s omezenou velikostí, automaticky rotované, jako například:
- Dana Bernsteina
multilogz daemontools - Bruce Guenter's
multilogz daemontools-encore - Laurenta Bercota
s6-logod s6 - Gerrit Pape
svlogdz runit - Wayne Marshall
tinylogod pachatele - Můj
cyclogod nosh
Nástroje ke zpracování multilog Sady souborů protokolu -format zahrnují mimo jiné:
- Russ Allberyho
multilog-watch logrange- Paul Kremer je
multilog-stamptail - Mých
follow-log-directoriesod nosh - Moje
export-to-rsyslogod nosh
Další čtení
- Jonathan de Boyne Pollard (2015). "Protokolování". Rodina daemontools . Často uváděné odpovědi.
- Jonathan de Boyne Pollard (2016). Nepoužívejte
logrotatenebonewsyslogv tomto století. . Často uváděné odpovědi. - https://unix.stackexchange.com/a/326166/5132
rotatelogs nástroj dodaný s Apache (v bin dir) (viz dokumenty) přebírá vstup ze stdin a otáčí protokol po určité době
Měl jsem podobný problém a původně jsem logrotate zahodil, ale ukázalo se, že logrotate to ve skutečnosti umí dobře, klíčová směrnice je "copytruncate ". Z nějakého důvodu se tento termín neobjevil u žádného z googlování, které jsem provedl, takže přidávám tuto odpověď, abych přesně objasnil, jak jej v tomto případě použít.
Trik je v tom, že to pouze funguje pokud je přesměrování provedeno pomocí „>> “ (připojit) místo „> " (vytvořit).
Konfigurační soubor (truncate.cfg):
/tmp/temp.log {
size 10M
copytruncate
rotate 4
maxage 100
}
Testovací program (nikdy se nevzdává souboru). Můžete sledovat, jak plní disk, a přestože se zdá, že odstranění souboru protokolu funguje, ve skutečnosti neuvolní žádné místo na disku:
cat /dev/urandom >> /tmp/temp.log
Rotace běžícího protokolu:
logrotate truncate.cfg