GNU/Linux >> Linux Esercitazione >  >> Linux

Daemontools Multilog perde le informazioni sull'ora della riga di registro. Come sistemarlo?

Sto usando daemontools per monitorare un processo e il suo registro di output. Sto usando multilog per scrivere i log su disco.

Lo script di esecuzione per il registro è:

#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
cd /usr/local/script_dir
exec multilog t s16777215 n50 '!tai64nlocal' '!/bin/gzip' /var/log/script_log

Il processo monitorato scrive anche l'output in stderr. Quindi nello script di esecuzione per il processo ci sono le seguenti righe per reindirizzare stderr a stdout:

exec 2>&1
exec ./my_process

Tuttavia, durante la coda del file di registro, vedo centinaia di righe di output che arrivano a raffica (il processo monitorato scrive l'output ogni pochi secondi) e il timestamp sulle righe di registro differisce in livelli inferiori al microsecondo. So dalla natura del processo che la differenza di tempo tra le linee di registro non è così piccola. Chiaramente il multilog sta memorizzando nel buffer l'output e quindi aggiungendo il timestamp quando è pronto per la scrittura su file. Vorrei che i timestamp riflettessero più da vicino l'ora in cui la linea è stata emessa. Come può essere risolto?

Risposta accettata:

Lo script monitorato era uno script Python. Per rendere tutti gli stream standard non bufferizzati, ho scoperto che si può semplicemente passare il -u opzione per l'interprete. Questo ha risolto il problema nel mio caso.


Linux
  1. Come modificare il reindirizzamento dell'output di un processo in esecuzione?

  2. Elaborare ogni riga di output da `ping` immediatamente in pipeline?

  3. Come risolvere l'ibernazione?

  4. Crontab Log:come registrare l'output di My Cron Script

  5. Come reindirizzare l'output di un processo già in esecuzione

Come visualizzare le informazioni di processo utilizzando Procs su Linux

Come risolvere la linea verde in fondo in VLC in Linux

Come trovare informazioni sulla CPU in Linux utilizzando la riga di comando

Come riparare il sistema Ubuntu che non risponde?

Come può sembrare che un processo abbia un nome diverso nell'output di ps?

Come ordinare l'output di ps in base all'ora di inizio del processo?