Para dar um exemplo, veja isto:
#!/bin/bash
(( $# != 1 )) && printf "%s\n" "Please provide one parameter"; exit 1;
servers=( srv1 srv2 srv3 )
case $1 in
"stop")
for srv in "${servers[@]}"
do
hostAlive=$(ping -s 64 "$srv" -c 1 | grep packet | awk '{print $(NF-4)}')
echo "=========="
echo "Stopping $srv"
[[ "$hostAlive" == "0%" ]] && ssh root@$srv '/var/tmp/stopServer.sh server1'
done;;
"start")
for srv in "${servers[@]}"
do
echo "=========="
echo "Starting $srv"
ssh....
done;;
*)
echo "Not a valid option"
exit 1;;
esac
O comando ssh será executado apenas se o anterior tiver terminado sua operação. Se você precisar saber mais, consulte o comando wait
.