Linux/Unix Shell Scripting - Script para actualizar tabla sql. Ayuda

   
Vista:

Script para actualizar tabla sql. Ayuda

Publicado por Carl0701 Carl0701@gmail.com (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.

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Script para actualizar tabla sql. Ayuda

Publicado por Tom (253 intervenciones) el 07/11/2015 10:54:07
Usa esta línea (si alguien quiere repetir por enésima vez lo de las comillas dobles y simples ... bien):

1
mysql --user=root --password=arduino rfid -e 'update clientesrfid set auth=0 where ip="'$IP'"'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script para actualizar tabla sql. Ayuda

Publicado por Carl0701 (3 intervenciones) el 07/11/2015 18:56:22
Disculpa, esta debe ser la unica que no probe de las multiples combinaciones que se pueden hacer con las comillas, je, je...

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script para actualizar tabla sql. Ayuda

Publicado por Tom (253 intervenciones) el 08/11/2015 02:46:44
Disculpado :D pero habrías perdido menos tiempo leyendo el manual de bash que probando combinaciones de comillas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script para actualizar tabla sql. Ayuda

Publicado por Carlos Pardo Gomez (3 intervenciones) el 08/11/2015 12:25:27
Cuanta razon tienes...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar