
Script para actualizar tabla sql. Ayuda
Publicado por Carl0701 (3 intervenciones) el 06/11/2015 22:42:13
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.
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:
Necesito ayuda. Donde puede estar el problema...?
Gracias
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/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:
1
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
Valora esta pregunta


0