Scripts para acceso a un listado de maquinas vía ssh

Algunas veces necesitaremos ejecutar algún comando desde un listado de maquinas y es cierto que existe Ansible pero que lo mismo por las circunstancias que sean pues no es posible hacer uso de Ansible.

Estos scripts son interesantes ya que no penden de tener la password a mano y pueden ser de utilidad en algún que otro momento.

#!/bin/bash
archivo="$1"

while read -r linea
do
	echo "sshpass -p 'password' ssh -o StrictHostKeyChecking=no usuario@$linea 'echo -n "$linea -  ";hostname'"
done < "$archivo"

Si se quiere sacar la salida a un archivo al mismo tiempo que se visualiza se puede ejecutar así:

$ bash nombrescript.sh listadoips.txt | tee salidalimpia.log

Es necesario tener instalado sshpass (en debian se puede instalar con "apt-get install sshpass") para que funcione. En ese caso ese script ejecutado indicando como parámetro un archivo que contenga un listado de IPs (una en cada línea).

Otro sencillo script bash para hacer ping a un listado de ips puede ser este:

#!/bin/bash
archivo="$1"

while read -r linea
do
	resultado=$(ping -c 1 $linea)
	resultado2=$(echo $resultado | grep "1 received")
	echo "$linea - $resultado2"

done < "$archivo"

Y poco más que decir.

Saludos cordiales.

Deja un comentario