Bash

Run on Multiple Hosts via SSH (with progress)

admin by @admin ADMIN
5d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Iterate a host list, run the same command on each, show colored OK/FAIL summary at the end. Useful for ad-hoc fleet operations without setting up Ansible.
Bash
Raw
HOSTS=(web1 web2 web3 db1 db2)
CMD="uptime && df -h /"

declare -A status
for h in "${HOSTS[@]}"; do
    echo "──── $h ────"
    if ssh -n -o ConnectTimeout=5 -o BatchMode=yes "$h" "$CMD"; then
        status[$h]="OK"
    else
        status[$h]="FAIL"
    fi
done

echo
echo "──── Summary ────"
for h in "${HOSTS[@]}"; do
    case "${status[$h]}" in
        OK)   printf '\e[32m✓\e[0m %s\n' "$h" ;;
        FAIL) printf '\e[31m✗\e[0m %s\n' "$h" ;;
    esac
done
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.