GNU/Linux >> Tutoriales Linux >  >> Linux

¿Enviando "ps" a través de múltiples servidores, la salida va a un archivo de texto?

Estoy tratando de crear un script que generará todos los procesos obsoletos en 66 cuadros de redhat en un solo archivo de texto. Entiendo los principios de hacer esto en un cuadro, pero no estoy seguro de cómo calzar ese proceso en algo que se ejecutará en un cuadro, pero consulta varios cuadros.

Entonces, encontré este pequeño script:

for host in $(cat hosts.txt); do ssh "$host" "$command" >"output.$host"; done

Entiendo que esencialmente podría enviar ps -ef | grep "defunct" como el $command , pero creo que cualquier archivo de salida que cree se colocará en el host en el que se está ejecutando.

¿Necesito hacer que esto se ejecute desde un cuadro, almacenando la salida en ese cuadro, pero conteniendo la información para los otros 65 cuadros?

Creo que tenemos ssh sin contraseña en su lugar. Mi conocimiento de Unix es algo intermedio, sé un poco porque estoy usando SAS.

Respuesta aceptada:

La redirección ocurre en la máquina que llama, no en la máquina remota, por lo que el archivo de resultados será local. Además, el grep no necesita ejecutarse de forma remota:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct" >"output.$host"
done <hosts.txt

Esto ejecuta ps -ef en cada host y grep extraerá el defunct líneas de salida. El grep se ejecutará localmente, no de forma remota. El archivo de resultados, igualmente, se crea localmente.

Si desea un único archivo de salida:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct"
done <hosts.txt >output.txt

O incluso (para una única invocación de grep )

while read -r host; do
    ssh "$host" ps -ef 
done <hosts.txt | grep "defunct" >output.txt

Linux
  1. Salida a Stdout y al mismo tiempo Grep en un archivo?

  2. ¿Cómo mover una línea en un archivo de texto hacia arriba o hacia abajo una línea?

  3. ¿Cómo eliminar varias líneas aleatorias de un archivo de texto usando Sed?

  4. Cómo configurar múltiples servidores MySQL en un sistema usando mysqld_multi

  5. ¿Cómo dividir un archivo de texto en varios archivos *.txt?

Haga ping a varios servidores y muestre la salida en la interfaz de usuario de texto superior

Cómo guardar la salida del comando de Linux en una imagen o un archivo de texto

Manipulación de texto con sed y grep

Cómo unir varias líneas en una en un archivo en Linux

Cómo extraer direcciones de correo electrónico de un archivo de texto en Linux

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