Subject: [alpine-devel] [PATCH] testing/nfdump: netflow tools Added init.d/nfcapd conf.d/nfcapd

From: Nathan Angelacos <[email-masked]>
Date: Wed, 1 Feb 2012 12:21:37 +0000

Used fprobe as a model for the nfcapd (netflow collector) init script
Pulls all command line options from the conf.d/nfcapd file
---
 testing/nfdump/APKBUILD     |   17 +++++++++--
 testing/nfdump/nfcapd.confd |   62 ++++++++++++++++++++++++++++++++++++++++++
 testing/nfdump/nfcapd.initd |   63 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 139 insertions(+), 3 deletions(-)
 create mode 100644 testing/nfdump/nfcapd.confd
 create mode 100644 testing/nfdump/nfcapd.initd

diff --git a/testing/nfdump/APKBUILD b/testing/nfdump/APKBUILD
index 9299be6..2f031d7 100644
--- a/testing/nfdump/APKBUILD
+++ b/testing/nfdump/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Natanael Copa <[email-masked]>
 pkgname=nfdump
 pkgver=1.6.4
-pkgrel=0
+pkgrel=1
 pkgdesc="The nfdump tools collect and process netflow data on the command line."
 url="http://nfdump.sourceforge.net/"
 arch="all"
@@ -12,7 +12,9 @@ depends_dev=""
 makedepends="bison flex $depends_dev"
 install=""
 subpackages="$pkgname-doc"
-source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz\
+	nfcapd.confd\
+	nfcapd.initd"
 
 _builddir="$srcdir"/$pkgname-$pkgver
 prepare() {
@@ -33,8 +35,17 @@ build() {
 }
 
 package() {
+	depends=fts
+
 	cd "$_builddir"
 	make DESTDIR="$pkgdir" install || return 1
+	install -D -m755 "$srcdir"/nfcapd.initd \
+		"$pkgdir"/etc/init.d/nfcapd
+
+	install -D -m644 "$srcdir"/nfcapd.confd \
+		"$pkgdir"/etc/conf.d/nfcapd
 }
 
-md5sums="a5ab5657da78f0f57ac7d29f31883949  nfdump-1.6.4.tar.gz"
+md5sums="a5ab5657da78f0f57ac7d29f31883949  nfdump-1.6.4.tar.gz
+d525c691a62a5746c581f5e9776ed866  nfcapd.confd
+d2b60619e18120af68771f3b866177e8  nfcapd.initd"
diff --git a/testing/nfdump/nfcapd.confd b/testing/nfdump/nfcapd.confd
new file mode 100644
index 0000000..fb9afb6
--- /dev/null
+++ b/testing/nfdump/nfcapd.confd
@@ -0,0 +1,62 @@
+# Config file for /etc/init.d/nfcapd
+
+# Port we listen on
+PORT=2205
+
+# Hostname/address we bind on - default is any available
+BINDHOST=127.0.0.1
+
+# IPv4 only 
+#IPV4=no
+
+# IPv6 only
+#IPV6=no
+
+# Join a specific Multicast group
+#MULTICASTGROUP=
+
+# Become a packet repeater
+#REPEAT=desthost/port
+
+
+# Ident string, specify the name of the router
+#IDENT=
+
+# Base Directory for output files
+BASEDIR="/var/log/nfcapd"
+
+# Source is one or more sources: Ident,IP,base_directory 
+# If you specificy SOURCE, do not specifiy IDENT or BASEDIR
+#SOURCE="Foo,192.168.1.1,/var/log/nfcapd/foo Bar,192.168.1.2,/var/log/nfcapd/bar"
+
+# Sample Rate - defaults to source
+#SAMPLERATE=
+
+# additional directory sub hierarchy (default none)
+#SUBDIR="%Y/%m/%d"
+
+
+# Extensions to be stored in the netflow data
+#EXTENSIONS="all"
+
+# How often to rotate the files (in seconds)
+#INTERVAL=300
+
+# Do we align rotation with next even interval
+#ALIGN=no
+
+# Run a command at the end of every interval
+#ROTATECMD=""
+
+# Auto expire old files (yes/no)
+#AUTOEXPIRE=no
+
+# User / Group
+UID=nobody
+GID=nobody
+
+# Buffer length in bytes (to reduce lost packets)
+BUFFLEN=1024000
+
+# Compress the flows with LZO (yes/no)
+COMPRESS=yes
diff --git a/testing/nfdump/nfcapd.initd b/testing/nfdump/nfcapd.initd
new file mode 100644
index 0000000..5f85068
--- /dev/null
+++ b/testing/nfdump/nfcapd.initd
@@ -0,0 +1,63 @@
+#!/sbin/runscript
+# Copyright 2012 N Angelacos - Based on Gentoo Foundation fprobe script
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+	need net
+	after firewall
+}
+
+
+BIN=/usr/bin/nfcapd
+PIDFILE_EXTRA=${SVCNAME#*.}
+if [ -n "${PIDFILE_EXTRA}" ] && [ ${SVCNAME} != "nfcapd" ]; then
+	PIDFILE="/var/run/nfcapd.${PIDFILE_EXTRA}.pid"
+else
+	PIDFILE="/var/run/nfcapd.pid"
+fi
+
+start() {
+	ebegin "Starting nfcapd"
+	local OPTS=""
+	
+	[ -n "${SOURCE}" ] && SOURCE=`echo -n "${SOURCE}" | sed 's/ / -n /g'`
+	[ "${IPV4}"       == "yes" ] && OPTS="${OPTS} -4"
+	[ "${IPV6}"       == "yes" ] && OPTS="${OPTS} -6"
+	[ "${ALIGN}"      == "yes" ] && OPTS="${OPTS} -w"
+	[ "${AUTOEXPIRE}" == "yes" ] && OPTS="${OPTS} -e"
+	[ "${COMPRESS}"   == "yes" ] && OPTS="${OPTS} -z"
+	for optname in p:PORT b:BINDHOST j:MULTICASTGROUP i:IFACE R:REPEAT \
+		I:IDENT l:BASEDIR n:SOURCE s:SAMPLERATE S:SUBDIR \
+		T:EXTENSIONS t:INTERVAL x:ROTATECMD u:UID g:GID \
+		B:BUFFLEN ; do
+	    opt="${optname/:*}"	optvar="${optname/*:}"
+	    eval optvalue="\$$optvar"
+	    [ -n "$optvalue" ] && OPTS="${OPTS} -${opt} ${optvalue}"
+	done
+	OPTS="${OPTS}"
+
+	# Attempt to make the basedir if specified
+	if [ -n "${BASEDIR}" ]; then
+		mkdir -p "${BASEDIR}"
+		chown "${UID}":"${GID}" "${BASEDIR}"
+	fi
+
+
+	start-stop-daemon --start -b --exec $BIN \
+		--pidfile ${PIDFILE} --make-pidfile \
+		-- ${OPTS}
+	eend $?
+}
+
+stop() {
+	ebegin "Stopping nfcapd"
+	start-stop-daemon --stop --quiet --exec $BIN \
+		--pidfile ${PIDFILE}
+	eend $?
+}
+
+
+
+
+
+
-- 
1.7.7.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---