[ad_1]
I have the following bash script that takes tcpdump data and pipes it (eventually) to mysql to be written to a database. In case the script crashes, cron runs with piped output once a minute to check for the tcpdump process and restart it if necessary.
bash /usr/bin/uem_trap >>/var/log/uem.log 2>&1
The script does crash from time to time with various errors and I’d like to get more verbose information when it does so that I can improve the script.
ERROR 1064 (42000) at line 1665: 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 ',,,,,"",");
Linux host.domain.com 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Maria DB version: 10.2.40-MariaDB
#!/bin/sh
if ps -ef | grep -v grep | grep '/usr/sbin/tcpdump -l -i ens192 -n -nn port snmptrap' ; then
exit 0
else
/usr/sbin/tcpdump -l -i ens192 -n -nn port snmptrap | stdbuf -i0 -o0 -e0 awk -F '( IP 1| +\\.1.3.6.1.([0-9]|\\.)+=)' '{gsub(/(^\"|\"$)/,"",$15); gsub(/\"/,"|",$15); gsub(/(^|$)/,"\"",$15); print "use uem; INSERT INTO uem_log (uem_dt, uem_num, uem_seq, category, entity, resource, severity, detect_time, message) VALUES (\"" $1 "\"," $3 "," $16 "," $7 "," $9 "," $10 "," $11 ",\"" $13 "\"," $15 ");\n"}' | stdbuf -i0 -o0 -e0 mysql --user=uuuu --password=pppp &
fi
[ad_2]