Replicando arquivos de log crescentes de maneira quase em tempo real pela rede

1

Eu tenho um servidor com vários processos gravando arquivos de log enquanto eles são executados. Eu preciso habilitar um host cliente para obter uma réplica dos arquivos de log do lado do servidor em uma maneira quase em tempo real. Existe uma maneira melhor do que simplesmente combinar cauda com netcat?

Eu estava pensando em usar o tail com o netcat no lado do servidor para transmitir vários arquivos de log por meio de uma única conexão:

tail -F *.log | nc -lk -p 31377

Enquanto o lado do cliente desmultiplexa os logs e os grava em arquivos:

nc serverhost 31377 | demultiplexer

Onde o demultiplexer é simplesmente construído em volta do sed, identificando nomes de arquivos de destino de separadores inseridos pela cauda no lado do servidor:

sed -e 's/==> \(.*\) <==//'
    
por Dmitry Aleks 29.11.2015 / 14:53

1 resposta

1

tente

 tail -f /path/to/logfile.log | xargs -l logger -p local8.info
  • xargs -l lerá linha por linha.
  • você precisa configurar o syslog.conf para transmitir. (substituindo local8 e info pelo valor adequado)
por 29.11.2015 / 15:35