GNU/Linux >> Znalost Linux >  >> Linux

Log rotace stdout?

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 multilog z daemontools
  • Bruce Guenter's multilog z daemontools-encore
  • Laurenta Bercota s6-log od s6
  • Gerrit Pape svlogd z runit
  • Wayne Marshall tinylog od pachatele
  • Můj cyclog od 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-directories od nosh
  • Moje export-to-rsyslog od 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 logrotate nebo newsyslog v 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

Linux
  1. Příkaz pro výstup obsahu souboru do Stdout?

  2. Najít soubor protokolu Firefoxu?

  3. Jak vytvořit vlastní rotaci souboru protokolu pomocí logrotate v Linuxu

  1. Jak přesměrovat výstup do souboru a stdout

  2. Jak vytisknout výstup příkazu Linuxu do souboru?

  3. vytvořit soubor protokolu

  1. Jak přesměrovat výstup do souboru a Stdout v Linuxu

  2. Jak vyprázdnit soubor protokolu v Linuxu

  3. cp-L vs. cp-H