w0nz3r
19-07-2012, 14:28
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):
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:
#!/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-
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):
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:
#!/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-