blob: 7ef4ba48c888ba34bfcf41c71b8d6df3723c8d5c [file] [log] [blame]
#@/bin/bash
SOURCE_TYPE=$1
ROOT_DIR=.
NEW_FILES_DIR=$ROOT_DIR/$SOURCE_TYPE/new
PROCESSED_FILES_DIR=$ROOT_DIR/$SOURCE_TYPE/stage
FLUME_SPOOL_DIR=$ROOT_DIR/$SOURCE_TYPE/flume_spool
for src_type in dns flow proxy; do for flume_dir in new stage flume_spool; do mkdir -p $src_type/$flume_dir; done; done
# start the flume agent in the background
flume-ng agent --conf-file spot_flume_${SOURCE_TYPE}.conf --name a1 > $ROOT_DIR/spot_flume_${SOURCE_TYPE}.log 2>&1 &
FLUME_PID=$!
trap "kill -9 $FLUME_PID; exit 1" SIGINT SIGTERM
while true
do
for fname in `ls $NEW_FILES_DIR`
do
if [ $SOURCE_TYPE = "dns" ]
then
tshark -r $NEW_FILES_DIR/$fname -E separator=, -E header=y -E occurrence=f -T fields -e frame.time -e frame.time_epoch -e frame.len -e ip.src -e ip.dst -e dns.resp.name -e dns.resp.type -e dns.resp.class -e dns.flags.rcode -e dns.a 'dns.flags.response == 1' > $PROCESSED_FILES_DIR/dns.log
elif [ $SOURCE_TYPE = "flow" ]
then
nfdump -r $NEW_FILES_DIR/$fname -o csv > $PROCESSED_FILES_DIR/flow.log
elif [ $SOURCE_TYPE = "proxy" ]
then
unzip $NEW_FILES_DIR/$fname -d $PROCESSED_FILES_DIR
else
echo "USAGE: process_files.sh <source_type> (valid source types: \"proxy\", \"dns\", \"flow\")"
exit 1
fi
mv $PROCESSED_FILES_DIR/*.log $FLUME_SPOOL_DIR
rm -f $NEW_FILES_DIR/$fname
done
rm -f $FLUME_SPOOL_DIR/*.COMPLETED
sleep 5
done