====== Flow to SQLite ======
#!/bin/sh
#
# Insert into /etc/flow-tools/flow-capture.conf
# -p /var/run/flow-capture.pid -n 287 -N 0 -w /var/netflow/ -R /root/bin/flow-to-sqlite.sh -S 5 0/0/8818
#
FLOWDATA=/var/netflow
WORKDIR=/var/sqlite/netflow
TEMPLATE=db-template.db
flow_file=$FLOWDATA/$1
cd $WORKDIR
dt=`echo $1 | cut -d "." -f2`
ddt=`echo $dt | cut -d "-" -f1,2`
# echo `date` "Processing on: " $flow_file " -- " traf-$ddt.db >> /var/log/alxtest.log
if [ ! -f "traf-$ddt.db" ]; then
cp $TEMPLATE traf-$ddt.db
fi
flow-print -f5 < $flow_file | awk -v dt=$dt '.
FNR < 3 {next}.
BEGIN { print "PRAGMA foreign_keys=OFF;\nBEGIN TRANSACTION;" }.
{.
split($2, t, ".");
split(t[2], hms, ":");
split(dt, dty, "-");
secs=mktime(dty[1]" "dty[2]" "dty[3]" "hms[1]" "hms[2]" "hms[3]) + 36000;
print "INSERT INTO traf VALUES (" secs ",\"" $4 "\"," $5 ",\"" $7 "\"," $8 "," $9 "," $12 ");"
}.
END { print "COMMIT;" }
' | sqlite3 traf-$ddt.db
# ' | sqlite3 traf-$ddt.db && mv $flow_file $FLOWDATA/arch
CREATE TABLE traf (
dt INTEGER NOT NULL default 0,
sip CHAR(15) NOT NULL default '0.0.0.0',
sport INTEGER NOT NULL default 0,
dip CHAR(15) NOT NULL default '0.0.0.0',
dport INTEGER NOT NULL default 0,
proto INTEGER NOT NULL default 0,
ds INTEGER NOT NULL default 0
);