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

 
Vista:
sin imagen de perfil

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.

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 (361 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
sin imagen de perfil

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 (361 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