aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac1
-rw-r--r--contrib/Makefile.am1
-rwxr-xr-xcontrib/osmo_pcap_clean_old47
4 files changed, 50 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index b9a4331..7c9c65b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
-SUBDIRS = include src
+SUBDIRS = include src contrib
BUILT_SOURCES = $(top_srcdir)/.version
EXTRA_DIST = git-version-gen
diff --git a/configure.ac b/configure.ac
index 9977ef6..2f4de9d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,4 +57,5 @@ AC_OUTPUT(
include/Makefile
include/osmo-pcap/Makefile
src/Makefile
+ contrib/Makefile
Makefile)
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
new file mode 100644
index 0000000..32bb8c2
--- /dev/null
+++ b/contrib/Makefile.am
@@ -0,0 +1 @@
+dist_pkgdata_DATA = osmo_pcap_clean_old
diff --git a/contrib/osmo_pcap_clean_old b/contrib/osmo_pcap_clean_old
new file mode 100755
index 0000000..d24a94b
--- /dev/null
+++ b/contrib/osmo_pcap_clean_old
@@ -0,0 +1,47 @@
+#! /bin/sh
+
+# Script designed to clean up (zip/delete) old files
+# Adjust the variables below and then copy/symlink this script
+# to /etc/cron/cron.{hourly,daily}
+
+# We want to keep the filenames dated and that confuses logrotate,
+# hence this script.
+
+# Number of pcap files per client
+NUMFILES=8
+ZIPAFTER=3
+VERBOSE=0
+
+# Path where the logfiles reside in
+BASEPATH="/var/lib/osmo-pcap/"
+
+# Find the client names present in basepath
+# Check how many files there are for each client
+# Delete files in excess of NUMFILES
+
+cd "$BASEPATH"
+
+
+do_cleanup()
+{
+ i=1
+ find . -name "trace-$1*" |sort | while read LOG; do
+ if [ $i -gt $NUMFILES ]; then
+ [ $VERBOSE -eq 1 ] && echo "Deleting file \"$LOG\""
+ rm -f "$LOG"
+ elif [ $i -gt $ZIPAFTER ]; then
+ if [ "${LOG##*.}" != "gz" ]; then
+ [ $VERBOSE -eq 1 ] && echo "Compressing file \"$LOG\""
+ gzip "$LOG"
+ fi
+ else
+ [ $VERBOSE -eq 1 ] && echo "Noop for file \"$LOG\""
+ fi
+ i=$(($i+1))
+ done
+}
+
+find . -name "trace-*" |sed -e "s/.*trace-\([^-]\+\).*/\1/" |sort |uniq | while read CLIENT; do
+ [ $VERBOSE -eq 1 ] && echo "Cleaning logs for $CLIENT"
+ do_cleanup "$CLIENT"
+done