Em vez de usar a autenticação de senha, recomendo que você use a autenticação de chave pública, é muito mais strong do que a senha simples e não precisa de sshpass
. Apenas crie chaves privadas sem senhas e use a opção ssh
do -i
, mas se você ainda quiser usar senhas, abaixo está a solução:
#!/bin/sh
hosts='
jboss5:manager:192.168.1.101
database1:db01:192.168.20.6
server8:localnet:192.168.31.83
x:z:192.168.1.151
test:mynet:192.168.35.44
'
for acct in ${hosts}; do
user=$(echo "${acct}" | awk -F: '{print $1}')
pass=$(echo "${acct}" | awk -F: '{print $2}')
host=$(echo "${acct}" | awk -F: '{print $3}')
sshpass -p "${pass}" ssh "${user}@${host}" \
'cd $HOME; ./start_script.sh; wget 192.168.1.110/monitor.sh; chmod +x monitor.sh; ./monitor.sh'
done