diff --git a/agent/netflow/netflow_handler.sh b/agent/netflow/netflow_handler.sh index 03b0d77..d2e526a 100755 --- a/agent/netflow/netflow_handler.sh +++ b/agent/netflow/netflow_handler.sh @@ -1,20 +1,24 @@ #!/usr/bin/env bash if [ -z "$1" ]; then - echo "missing port" - exit -fi - -if [ -z "$2" ]; then echo "missing filename" exit fi -fname=$2 -port=$1 PATH=/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin +tmpdir='/tmp/djing_flow' -cd /tmp/djing_flow -mkdir -p dump/${port} -echo "mv ${port}/${fname} dump/${port}/${fname}.dmp" >> /tmp/mv.log -mv ${port}/${fname} dump/${port}/${fname}.dmp +if [ ! -d "$tmpdir" ]; then + mkdir -p "$tmpdir" +fi + +cd "$tmpdir" +fname=$1 +port=`echo $(find -name "$fname") | tr / "\n" | head -2 | tail -n1` + +if [[ -z "$port" ]]; then + echo "$fname not found in any directory" +else + mkdir -p dump/${port} + mv ${port}/${fname} dump/${port}/${fname}.dmp +fi diff --git a/agent/netflow/start_netflow.sh b/agent/netflow/start_netflow.sh index 5b9a063..f6261a7 100755 --- a/agent/netflow/start_netflow.sh +++ b/agent/netflow/start_netflow.sh @@ -9,6 +9,13 @@ fi port=$1 DIRECTORY=`dirname $(readlink -e "$0")` -mkdir -p /tmp/djing_flow/${port} -flow-capture -R "${DIRECTORY}/netflow_handler.sh ${port}" -p /run/flow.pid -w /tmp/djing_flow/${port} -n1 -N0 0/0/${port} +tdir="mkdir -p /tmp/djing_flow/${port}" +if [ -d "${tdir}" ]; then + echo "Warning: directory '${tdir}' exists" +else + mkdir -p "${tdir}" +fi + + +flow-capture -R ${DIRECTORY}/netflow_handler.sh -p /run/flow.pid -w ${tdir} -n1 -N0 0/0/${port}