Ciao ragazzi,

ho bisogno di una mano
Avrei bisogno di monitorare alcuni server e farmi inviare mail se uno di questi non risponde al ping.
Necessito però di utilizzare un file (list.txt) che contiene 3 colonne (nome server, ip gataway, ip address) e n righe.

Il file (list.txt) è così composto (esempio):

codice:
server1      30.30.30.1   30.30.21.1
server2      30.30.30.2   30.30.21.2
server3      30.30.30.3   30.30.21.3
Il mio bash script (incompleto) è questo:

codice:
#!/bin/bash

#Check IP
for i in $(cat list.txt | awk '{ print $2}')
do
                #n=$(cat lista | awk '{ print $1}')
                ping -c 1 -w 1 $i &> /dev/null
                if [ $? -ne 0 ]; then
                echo "GW $i DOWN!"
fi
done
Lo script funziona, ma la variabile $i è l'ip del GW, mentre io vorrei che apparisse il nome del server down (colonna 1).

Se rimuovo il commento da #n=$(cat lista | awk '{ print $1}') e inserisco la variabile $n in "echo" (echo "GW $n DOWN!") mi da giustamente come output tutta la lista della colonna 1...
Dovrei poi inserire allo stesso modo il check della colonna 3 e l'alert via mail (check ogni 15 min nel crontab).

Grazie a tutti per l'aiuto!

-w-