@mat Oh, estaba a punto de probarlo :). ¡Gracias de todos modos!
Pablo Fernández
no funciona porque la construcción <(foo) esperará a que termine el comando interno antes de ser reemplazado por una tubería en la línea de comando original desde la cual el software podrá leer, y la cola nunca terminaría :-)
Sí, así es como lo hago, excepto que generalmente tengo múltiples terminales de gnomos abiertos, cada uno con una sesión dentro de él
Tom O'Connor
1
¿Hay alguna manera de hacer esto sin abrir múltiples sesiones ssh independientes?
tgies
8
Pero esto no le permite detener el seguimiento con Ctrl+C.
sorin
@sorin para terminar los procesos, solo vuelva a poner cada uno en primer plano con fg; entonces puedes ctrl+chacerlo. Lo harías una vez por cada cola que tengas corriendo. O podrías pkill -f sshapuntar a todos ellos al mismo tiempo.
Dale Anderson el
34
Mi opción preferida es ir con multitail. Me gustaría correr algo como:
¡Gracias! ¡Estaba buscando un ejemplo de cómo usar multitail sobre ssh / en hosts remotos!
Noah Sussman
Multitail es una solución mucho más robusta.
obfk
nuestro sitio web tiene más de 10 nodos web, y el multitail falla en el primer intento con el error Operation not permitted, con 2 3 nodos web, está bien
Hieu Vo
También recibo Operation not permitted, ¿alguna pista?
Erik Aigner
7
Puede usar fabric para seguir varios hosts (y también resultados grep, si es necesario):
La opción -f después de ssh le permite ingresar una contraseña antes de que se ejecute en segundo plano. Entonces podría tener los resultados línea por línea en un solo archivo y ejecutar:
tail -f /tmp/somefile
Le daría un poco más de control sobre el comando "cola" actual en caso de que quisiera usar otras opciones de cola para mostrar la salida.
Echa un vistazo a multitail . Al igual que en los ejemplos anteriores, puede darle un comando a ssh, y luego terminará con una pantalla que muestra (y almacena en búfer para retroceder fácilmente) múltiples registros. También colorea, lo cual es muy útil para detectar anomalías.
Simplemente descargue la versión correspondiente a su sistema operativo, del ejecutable de lanzamiento de jar nativo dentro de su Java Runtime (requiere java 8_40 o superior):
o puede usar la pantalla para crear dos terminales y luego dividirlos.
SSH en el primer host del que desea ajustar el archivo de registro y, antes de ejecutar tail, ingrese a la pantalla.
Luego, siga el archivo en este host.
CTRL + A, c creará una nueva pantalla o ventana. Desde esta nueva ventana, ingrese al segundo host y siga el archivo.
Ahora para crear la pantalla dividida
CTRL + A, SHIFT + S, esto creará una pantalla dividida con el shell actual en la parte superior y la parte inferior vacía. Para cambiar a la parte inferior y colocar la primera pantalla dentro de ella,
CTRL + A, TAB, esto lo moverá a la parte inferior. Ahora para traer su primera sesión SSH a esta área:
CTRL + A ", (símbolo de comillas) y seleccione la primera sesión y presione enter
Me doy cuenta de que esto puede parecer una gran cantidad de gimnasia, y lo es, pero te acostumbras una vez que lo usas varias veces.
Además, puede crear un archivo .screenrc para que gran parte de lo que describí pueda automatizarse la primera vez que ingrese a la pantalla.
Otra cosa buena de esto es que puede cerrar su sesión y reanudarla en otro lugar. Por ejemplo, estás en el trabajo y tienes algo de monitoreo. Puede cerrar su sesión sin cerrar sesión y reanudarla cuando llegue a casa o a otra ubicación.
Respuestas:
Esto funcionó para mí:
fuente
Ctrl+C
.fg
; entonces puedesctrl+c
hacerlo. Lo harías una vez por cada cola que tengas corriendo. O podríaspkill -f ssh
apuntar a todos ellos al mismo tiempo.Mi opción preferida es ir con multitail. Me gustaría correr algo como:
fuente
Operation not permitted
, con 2 3 nodos web, está bienOperation not permitted
, ¿alguna pista?Puede usar fabric para seguir varios hosts (y también resultados grep, si es necesario):
fuente
Estaba pensando que también podría ser posible usar:
La opción -f después de ssh le permite ingresar una contraseña antes de que se ejecute en segundo plano. Entonces podría tener los resultados línea por línea en un solo archivo y ejecutar:
Le daría un poco más de control sobre el comando "cola" actual en caso de que quisiera usar otras opciones de cola para mostrar la salida.
fuente
Mira esta respuesta en stackoverflow : usa dsh y tail -f.
fuente
Echa un vistazo a multitail . Al igual que en los ejemplos anteriores, puede darle un comando a ssh, y luego terminará con una pantalla que muestra (y almacena en búfer para retroceder fácilmente) múltiples registros. También colorea, lo cual es muy útil para detectar anomalías.
fuente
Paralelo ssh tiene una buena solución para esto:
-t0
desactiva el tiempo de espera de la conexión, de lo contrario, pssh cerró la conexión-H '<host>...'
es la lista de hosts para ejecutar el comando-P
es habilitar la impresión de stdout de cada hosttail -f /var/log/app.log
puede ser cualquier comando que pueda ejecutar su shell remotofuente
¿Qué dirías sobre algo como esto? http://gist.github.com/303175
fuente
¡Solo una solución extraña, pero funciona !:
Pantalla 1
Pantalla 2
fuente
who am i
y se lo mostrará).Puedes pagar dbitail.
Una herramienta Java que creé, capaz de leer archivos de registro locales y distantes usando SSH. Es bastante simple de usar.
Algunas explicaciones más: https://github.com/pschweitz/DBITail/wiki
Simplemente descargue la versión correspondiente a su sistema operativo, del ejecutable de lanzamiento de jar nativo dentro de su Java Runtime (requiere java 8_40 o superior):
https://github.com/pschweitz/DBITail/releases
Puede encontrar una documentación completa (incrustada con y también la página de Github)
Philippe
fuente
o puede usar la pantalla para crear dos terminales y luego dividirlos.
SSH en el primer host del que desea ajustar el archivo de registro y, antes de ejecutar tail, ingrese a la pantalla.
Luego, siga el archivo en este host.
CTRL + A, c creará una nueva pantalla o ventana. Desde esta nueva ventana, ingrese al segundo host y siga el archivo.
Ahora para crear la pantalla dividida
CTRL + A, SHIFT + S, esto creará una pantalla dividida con el shell actual en la parte superior y la parte inferior vacía. Para cambiar a la parte inferior y colocar la primera pantalla dentro de ella,
CTRL + A, TAB, esto lo moverá a la parte inferior. Ahora para traer su primera sesión SSH a esta área:
CTRL + A ", (símbolo de comillas) y seleccione la primera sesión y presione enter
Me doy cuenta de que esto puede parecer una gran cantidad de gimnasia, y lo es, pero te acostumbras una vez que lo usas varias veces.
Aquí hay un tutorial realmente bueno o una referencia rápida a los comandos de la pantalla: http://www.pixelbeat.org/lkdb/screen.html
Además, puede crear un archivo .screenrc para que gran parte de lo que describí pueda automatizarse la primera vez que ingrese a la pantalla.
Otra cosa buena de esto es que puede cerrar su sesión y reanudarla en otro lugar. Por ejemplo, estás en el trabajo y tienes algo de monitoreo. Puede cerrar su sesión sin cerrar sesión y reanudarla cuando llegue a casa o a otra ubicación.
fuente
Puede seguir archivos de forma remota usando bash y rsync, lo estoy usando y es un gran script de bash eche un vistazo al siguiente tutorial
Cola archivos de forma remota utilizando bash y rsync
fuente