Bonsoir à tous,

je viens vers vous car je débute en script bash et j'ai un problème

voici le script en question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
data=$(mysql -u $DB_USER -p$DB_PWD -s -N << EOF
use $DB_NAME
SELECT name, ip_addr, community, options, network FROM devices WHERE network <> '';
quit
EOF
)
 
sql=''
stamp=$(date +%s)
PIFS=IFS;
IFS=$'\n';
for line in $data; do
        OIFS="$IFS"
        IFS='   '
        read -a var <<< "${line}"
        IFS="$OIFS"
#echo ${var[0]}
        if [ -n "${var[3]} | grep bandwidth" ]
        then
                OIFS="$IFS"
                IFS='|'
                read -a net <<< "${var[4]}"
                IFS="$OIFS"
                tx=$(/bin/php /path/to/scripts/ajax.php listen=bandwidth way=OUT ip=${var[1]} com=${var[2]} device_id=${net[1]})
                rx=$(/bin/php /path/to/scripts/ajax.php listen=bandwidth way=IN ip=${var[1]} com=${var[2]} device_id=${net[1]})
                sql="INSERT INTO logs_test (device, name, up, down, time) VALUES ('${var[0]}', '${net[0]}', '$tx', '$rx', $stamp)"
        fi
done
IFS=PIFS;
 
mysql -u $DB_USER -p$DB_PWD << EOF
use $DB_NAME
$sql
quit
EOF
expliction: ajax.php me calcule la bande passante de mes interfaces reseaux
ce script a pour but d'aller chercher dans une table device les infos des appareils avec lesquel je peux faire un graph de la bande passante
des qu'il les a il passe un coup d'ajax.php pour avoir les variable rx et tx
apres j'enregistre dans la base de donnée
c'est là ou j'ai un problème

voilà ce que ça me met
ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'quit' at line 2
N ERT NTO logs_test (device, name, up, down, time) VALUE ('N 2', 'eth0', '0.06', '0.19', 1528232650)
les I et S ont tous disparu

quelqu'un peut-il m'aider?

Merci d'avance à vous

Emmanuel