Você tem dois métodos
Método 1:
Groups="server1 server2"
echo $Groups | xargs -n1 | xargs -I'{}' echo ssh '{}' df
Nota: - Se a saída é boa do comando acima, então basta remover echo
no último, em seguida, ele irá executar comandos em servidores remotos. não use variável no CAPS porque é usado para variável de ambiente
Método 2:
Você pode consultar abaixo o script
#!/bin/bash
# ssh password less login is required
# mention below remote server seperated by space
remote_srv=( 127.0.0.1 127.0.0.2 127.0.0.3 )
do_ssh() {
ssh $s "$@"
echo -e
}
header() {
echo "#==================={$@}==========================#"
}
n=${#remote_srv[@]} # number of ip's in array
for (( i=0;i<$n;i++)); do
echo -e
echo "$(tput bold)$(tput setaf 2)* Connected Server: ${remote_srv[$i]} @@ $(date) @@"
echo "* Fetching info...$(tput sgr 0)"
s=${remote_srv[$i]}
header "Memory Usage"
do_ssh free -m
header "Disk Usage"
do_ssh df -h
done
## EOF