[Multi User Secure SHell]. Es un script de shell que permite ejecutar un comando o script por SSH en varios hosts con un solo comando desde tu máquina local. Su objetivo principal es ahorrar tiempo y esfuerzo al evitar tener que conectarse manualmente a cada servidor uno por uno. Siempre que sea posible, aprovecha el agente SSH [ssh-agent] y claves RSA/DSA para autenticación sin necesidad de ingresar la contraseña repetidamente en cada conexión..
$ mussh -h servidor1.example.com servidor2.example.com servidor3.example.com -c "uptime"
$ mussh -A -h servidor1.example.com servidor2.example.com servidor3.example.com -c "uptime"
$ echo -e "hostA\nhostB" | mussh -H - -i ~/.ssh/clave_privada -c "ps aux | grep apache" -d 1
$ mussh -a -h web1 web2 db1 -c "echo 'Iniciando backup'" -C /ruta/backup_script.sh -c "echo 'Backup completado'" -m -b -d 2
1.-
Usando lista de hosts desde archivo a host por línea [los comentarios precedidos por # no son leidos]:
$ nano mis_hosts.txt
# Servidores de producción
prod1.example.com
prod2.example.com
# Otro servidor
staging.example.com
$ mussh -H mis_hosts.txt -c "df -h /var/log"
2.-
Ejecutando un script desde archivo en paralelo:
$ nano actualizar.sh
#!/bin/bash
apt update
apt upgrade -y
$ mussh -h host1 host2 host3 -C actualizar.sh -m
$ mussh -H mis_hosts.txt -C actualizar.sh -m
Notas.- Si un host falla, mussh continúa con los demás y los argumentos pueden ir en cualquier orden.