mirror of https://gerrit.osmocom.org/osmo-pcap
contrib: Add a script to clean up in regular intervals
This script should be run from cron. It compresses and deletes older files.
This commit is contained in:
parent
b000368ad6
commit
5d62ed0904
|
@ -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
|
||||
|
|
|
@ -57,4 +57,5 @@ AC_OUTPUT(
|
|||
include/Makefile
|
||||
include/osmo-pcap/Makefile
|
||||
src/Makefile
|
||||
contrib/Makefile
|
||||
Makefile)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
dist_pkgdata_DATA = 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
|
Loading…
Reference in New Issue