Supondo que você queira apenas todas as saídas no terminal:
#!/bin/bash
hosts_file=/path/to/file
username=youruser
while read -r host; do
hostname=$(ssh "${username}@${host}" hostname)
ip_addr=$(ssh "${username}@${host}" hostname -I)
uptime=$(ssh "${username}@${host}" uptime)
echo
{
echo "Hostname:?$hostname"
echo "IP:?$ip_addr"
echo "uptime:?$uptime"
} | column -s\? -t
echo
done <"$hosts_file"
Isto irá percorrer cada linha do seu arquivo_hosts, atribuindo a linha inteira a host
. Em seguida, ele definirá os hostname
, ip_addr
e uptime
para os resultados correspondentes na máquina remota. Em seguida, ele repetirá esses resultados em um formato em colunas.