GNU/Linux >> Tutoriales Linux >  >> Linux

Archivo de registro de cola en varias máquinas a través de ssh

Lo que ve es el efecto de un búfer de salida estándar en grep proporcionada por Glibc. La mejor solución es deshabilitarlo usando --line-buffered (GNU grep, no estoy seguro de qué otras implementaciones podrían admitirlo o algo similar).

En cuanto a por qué esto solo sucede en algunos casos:

ssh server "tail -f /var/log/server.log | grep test"

ejecuta todo el comando entre comillas en el servidor; por lo tanto, grep espera para llenar su búfer.

ssh server tail -f /var/log/server.log | grep test

ejecuta grep en su máquina local en la salida tail enviado a través del canal ssh.

La parte clave aquí es que grep ajusta su comportamiento dependiendo de si es stdin es un terminal o no. Cuando ejecutas ssh -t , el comando remoto se ejecuta con un terminal de control y, por lo tanto, el control remoto grep se comporta como el local.


mira esto:multitail

MultiTail le permite monitorear archivos de registro y salida de comandos en múltiples ventanas en una terminal, colorear, filtrar y fusionar.

Para seguir los registros en varios servidores, use:

multitail -l 'ssh [email protected] "tail -f /path/to/log/file"' -l 'ssh [email protected] "tail -f /path/to/log/file"'

Linux
  1. Comandos de acceso a archivos en Linux:buscar, ordenar, encabezado, cola

  2. Cómo grep \n en el archivo

  3. ¿Cómo hacer que ssh inicie sesión como el usuario correcto?

  4. Sintaxis del archivo de configuración logrotate:¿son posibles múltiples entradas comodín?

  5. Uso de la misma clave privada SSH en varias máquinas

Comando de cola de Linux

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

¿Ejecutando un archivo de script sobre Ssh a través de Sudo?

3 métodos para ver la salida tail -f de múltiples archivos de registro en una terminal

Copie datos a través del túnel SSH en múltiples saltos

Grep en un archivo de registro enorme (> 14 GB) ¿solo los últimos x GB?