Há uma lista de endereços IP em um arquivo .txt, por exemplo:
1.1.1.1
2.2.2.2
3.3.3.3
Por trás de cada endereço IP, há um servidor e em cada servidor existe um sshd em execução na porta 22. Nem todos os servidores estão na known_hosts
lista (no meu PC, Ubuntu 10.04 LTS / bash).
Como posso executar comandos nesses servidores e coletar a saída?
Idealmente, eu gostaria de executar os comandos em paralelo em todos os servidores.
Vou usar autenticação de chave pública em todos os servidores.
Aqui estão algumas armadilhas em potencial:
- O ssh solicita que eu coloque a chave ssh dos servidores no meu
known_hosts
arquivo. - Os comandos fornecidos podem retornar um código de saída diferente de zero, indicando que a saída é potencialmente inválida. Eu preciso reconhecer isso.
- Uma conexão pode falhar ao ser estabelecida com um determinado servidor, por exemplo, devido a um erro de rede.
- Deve haver um tempo limite, caso o comando seja executado por mais tempo do que o esperado ou o servidor fique inativo durante a execução do comando.
Os servidores são AIX / ksh (mas acho que isso realmente não importa.