blob: 0f879b66cffcc205a9b3e2805c539139afc43df2 [file] [log] [blame]
#!/bin/bash
# NOTE: Taken fnd modified from onos.sh
# pack-rotate-log [packname] "[log-filenames]" [max rotations]
# Note: [packname] and all the log-files specified by [log-filenames]
# must reside in same dir
# Example:
# pack="/foo/bar/testlogs"
# logfiles="/foo/bar/test1.log /foo/bar/test*.log"
# pack-rotate-log $pack "$logfiles" 5
# => testlogs.tar.bz2 (will contain test1.log test2.log ...)
# testlogs.tar.bz2 -> testlogs.1.tar.bz2
# testlogs.1.tar.bz2 -> testlogs.2.tar.bz2
# ...
function pack-rotate-log {
local packname=$1
local logfiles=$2
local nr_max=${3:-10}
local suffix=".tar.bz2"
# rotate
for i in `seq $(expr $nr_max - 1) -1 1`; do
if [ -f ${packname}.${i}${suffix} ]; then
mv -f -- ${packname}.${i}${suffix} ${packname}.`expr $i + 1`${suffix}
fi
done
if [ -f ${packname}${suffix} ]; then
mv -- ${packname}${suffix} ${packname}.1${suffix}
fi
# pack
local existing_logfiles=$( ls -1 $logfiles 2>/dev/null | xargs -n1 basename 2>/dev/null)
if [ ! -z "${existing_logfiles}" ]; then
tar cjf ${packname}${suffix} -C `dirname ${packname}` -- ${existing_logfiles}
for word in ${existing_logfiles}
do
rm -- `dirname ${packname}`/${word}
done
fi
}
#Begin script
#NOTE: This seems to break the TestON summary since it mentions the testname
#echo "Rotating logs for '${1}' test"
base_name=$1
root_dir="/home/admin/packet_captures"
timestamp=`date +%Y_%B_%d_%H_%M_%S`
#Maybe this should be an argument? pack-and-rotate supports that
nr_max=20
pack-rotate-log ${root_dir}'/'${base_name} "${root_dir}/${base_name}*.pcap ${root_dir}/${base_name}*.log" ${nr_max}