Hay una lista de direcciones IP en un archivo .txt, por ejemplo:
1.1.1.1
2.2.2.2
3.3.3.3
Detrás de cada dirección IP hay un servidor, y en cada servidor hay un sshd ejecutándose en el puerto 22. No todos los servidores están en la known_hosts
lista (en mi PC, Ubuntu 10.04 LTS / bash).
¿Cómo puedo ejecutar comandos en estos servidores y recopilar la salida?
Idealmente, me gustaría ejecutar los comandos en paralelo en todos los servidores.
Usaré la autenticación de clave pública en todos los servidores.
Aquí hay algunos peligros potenciales:
- El ssh me pide que coloque la clave ssh de los servidores dados en mi
known_hosts
archivo. - Los comandos dados pueden devolver un código de salida distinto de cero, lo que indica que la salida es potencialmente inválida. Necesito reconocer eso.
- Es posible que no se pueda establecer una conexión con un servidor determinado, por ejemplo, debido a un error de red.
- Debería haber un tiempo de espera, en caso de que el comando se ejecute por más tiempo de lo esperado o el servidor se caiga mientras se ejecuta el comando.
Los servidores son AIX / ksh (pero creo que eso realmente no importa.