GNU/Linux >> Linux Esercitazione >  >> Linux

Log rotazione di stdout?

In alternativa, puoi reindirizzare l'output attraverso strumenti progettati con lo scopo principale di mantenere insiemi di file di registro con limite di dimensione, ruotati automaticamente, come:

  • multilog di Dan Bernstein da daemontools
  • Il multilog di Bruce Guenter da daemontools-encore
  • Il s6-log di Laurent Bercot da s6
  • Il svlogd di Gerrit Pape da runit
  • Il tinylog di Wayne Marshall da perp
  • Il mio cyclog da nosh

Strumenti per poi elaborare multilog -format i set di file di log includono, tra gli altri:

  • Il multilog-watch di Russ Allbery
  • logrange
  • Il multilog-stamptail di Paul Kremer
  • I miei follow-log-directories da nosh
  • Il mio export-to-rsyslog da nosh

Ulteriori letture

  • Jonathan de Boyne Pollard (2015). "Registrazione". La famiglia dei daemontools . Risposte frequenti.
  • Jonathan de Boyne Pollard (2016). Non utilizzare logrotate o newsyslog in questo secolo. . Risposte frequenti.
  • https://unix.stackexchange.com/a/326166/5132

il rotatelogs strumento fornito con apache (nel file bin dir) (vedi documenti) riceve input da stdin e ruota il registro dopo un periodo di tempo specifico


Ho avuto un problema simile e inizialmente avevo scartato logrotate ma si è scoperto che logrotate può effettivamente farlo bene, la direttiva chiave è "copytruncate ". Per qualche motivo quel termine non è venuto fuori da nessuna delle ricerche su Google che ho fatto, quindi aggiungo questa risposta per chiarire esattamente come usarlo per questo caso.

Il trucco è che funziona solo se il reindirizzamento viene eseguito con ">> " (aggiungi) invece di "> " (crea).

File di configurazione (truncate.cfg):

/tmp/temp.log {
    size 10M
    copytruncate
    rotate 4
    maxage 100
}

Programma di prova (non molla mai il file). Puoi vederlo riempire il disco e anche se l'eliminazione del file di registro sembrerà funzionare, in realtà non libererà spazio sul disco:

cat /dev/urandom >> /tmp/temp.log

Rotazione registro in esecuzione:

logrotate truncate.cfg

Linux
  1. Come creare una rotazione del file di registro personalizzata tramite logrotate in Linux

  2. Come reindirizzare l'output su un file e stdout

  3. Reindirizza tutto l'output su file in Bash

  4. Cattura l'output dei nethog nel file di registro

  5. Come stampare l'output del comando Linux su un file?

Come reindirizzare stderr a stdout in Bash

Come modificare il file di registro di Sudo predefinito in Linux

Configurazione di logrotate in Linux

Come reindirizzare l'output su un file e Stdout in Linux

Rotazione del file di registro

cp -L contro cp -H