Buenas tardes foreros:
Con el siguiente script pretendo hacer ping a una lista de IP's incluida en un fichero de texto y con el resultado modifico una tabla SQL en consecuencia. En el campo IP de la tabla se encuentran las mismas IP's que en el fichero de texto.
Código:
#!/bin/bash
# Hace ping a una lista de IP's incluidas en un archivo y actualiza una base de datos sql
# en consecuencia con el resultado obtenido.
clear
if [ "$1" = "" ] ; then # No se pasó una lista de ips
echo "Error: Introduce un nombre de archivo válido que contenga las IP's para hacer ping."
exit 1
fi
if [ ! -f "$1" ] ; then # Archivo inválido.
echo "Error: No puedo encontrar el archivo "$1"."
exit 2
fi
echo "(*) Haciendo ping a los servidores contenidos en el archivo "$1"..."
echo
while read IP
do
ping -c 3 "$IP" >& /dev/null
if [ "$?" != "0" ] ; then
# (echo -n "$IP " ; date) | tee -a notping.log
echo -e "${IP} \e[0;31m[ERR]\e[1;37m"
mysql --user=root --password=arduino rfid -e 'update clientesrfid set auth=0 where ip= "$IP"';
else
# (echo -n "$IP " ; date) | tee -a yesping.log
echo -e "${IP} \e[1;32m[OK]\e[1;37m"
mysql --user=root --password=arduino rfid -e 'update clientesrfid set auth=1 where ip= "$IP"';
fi
done < "$1"
exit 0
echo
El caso es que el script hace ping de forma correcta pero no actualiza la tabla. Sin embargo, ejecutando el comando siguiente por separado, si que funciona:
Código:
mysql --user=root --password=arduino rfid -e 'update clientesrfid set auth= 0 where ip ="192.168.1.14"';
Necesito ayuda. Donde puede estar el problema...?
Gracias