ssh para vários servidores e execute comandos específicos do aplicativo em vez de comandos do sistema operacional

ssh para vários servidores e execute comandos específicos do aplicativo em vez de comandos do sistema operacional

Meu script do servidor de origem tentando ssh em vários servidores e executando o comando específico do aplicativo que posso dizer, além dos comandos do sistema operacional (como cat, chmod ..), recebo o erro como comando: não encontrado. Abaixo está o roteiro.

for host in $(cat hosts_list.txt)
do
ssh $host chk_auto_up > "cmd_output.txt"
done

Alguém pode ajudar, o que devo incluir no script para identificar o comando e executar e gravar a saída do arquivo?

Eu tenho um erro dizendo que o comando não foi encontrado

Responder1

você acabou de editar a linha:

ssh $host /path/of/chk_auto_up > "cmd_output.txt"

Defina o caminho absoluto do comando.

Responder2

Encontrei uma resposta sobre como executar comandos externos via ssh remotamente.

for host in $(cat /***/thishost/**/username/hosts_list.txt)
do
ssh "$host"
. /**/***/*****/*****/******.${HOST}  
chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
exit
done

Detalhes:

  1. hosts_list.txt --> Tenho uma lista de servidores para fazer login por ssh
  2. ssh "$host" -> o login ssh acontece no primeiro servidor.
  3. . /**/***/*****/*****/******.${HOST}-> o caminho binário do comando externo está disponível aqui
  4. chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt" -> Execute o comando e grave a saída no servidor de origem.

informação relacionada