Eu consegui isso da seguinte maneira
.ssh / config foi modificado para eliminar o prompt sim / não - estou atrás de um firewall, portanto não estou preocupado com chaves ssh falsificadas
host *
StrictHostKeyChecking no
Crie um arquivo de resposta para expect, por exemplo, answer.expect
set timeout 20
set node [lindex $argv 0]
spawn ssh root@node service hadoop-hdfs-datanode restart
expect "*?assword {
send "password\r" <- your password here.
interact
Crie seu script bash e chame apenas expect no arquivo
#!/bin/bash
i=1
while [$i -lt 129] # a few nodes here
expect answer.expect hadoopslave$i
i=[$i + 1]
sleep 5
done
Obtém 128 dados do hadoop atualizados com a nova configuração - assumindo que você esteja usando uma montagem NFS para os arquivos hadoop / conf
Espero que isso ajude alguém - eu sou um Windows entorpecido e isso me levou cerca de 5 horas para descobrir!