shell script per monitorare nginx file di log su Gentoo scade dopo file di registro viene compresso con gzip

StackOverflow https://stackoverflow.com/questions/4405701

Domanda

Questo è un follow-up domanda del mio precedente domanda

Quindi ho questa shellscript per monitorare un file di log nginx su Gentoo, il problema è il file di log sono stati rinominati e gziped dopo certa dimensione del file o periodo di tempo, lo shellscript ancora guardando il file originale-descrittore (o inode? ), il nuovo contenuto del file non verrà visualizzato.

La mia domanda è, come collegare nello script auto-gzip per avere il mio script monitor di file di log riavviato per monitorare il nuovo file di registro?

A proposito Si prega di non farlo utilizzando cronjob o utilizzando un timer. Voglio una risposta quasi in tempo reale del mio script monitor.

È stato utile?

Soluzione

Con la bandiera -F invece della bandiera -f per tail (o lavoro --follow=name volontà anche se questo sarà solo il lavoro su Linux e -F funziona su sistemi BSD e Mac OS X oltre):

   --retry
          keep trying to open a file even if it is inaccessible when  tail
          starts  or  if it becomes inaccessible later -- useful only with
          -f

   -f, --follow[={name|descriptor}]
          output appended data as the file grows; -f, --follow, and --fol-
          low=descriptor are equivalent

   -F     same as --follow=name --retry

   With  --follow  (-f),  tail  defaults to following the file descriptor,
   which means that even if a tail’ed file is renamed, tail will  continue
   to  track  its  end.   This  default behavior is not desirable when you
   really want to track the actual name of the file, not the file descrip-
   tor (e.g., log rotation).  Use --follow=name in that case.  That causes
   tail to track the named file by reopening it periodically to see if  it
   has been removed and recreated by some other program.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top