#!/bin/bash
# crontab -e
# 0 0 * * 1 /usr/$project/clearlog.sh /usr/$project/log $project.log. 10080 31
#surport tgzDays-before
if [ "$#" -lt 3 ]; then
echo usage: $0 /<log-directory/> /<log-file-prefix/> /<mins-before/> /<tgzDays-before/>
exit 1
fi
cd $1
if [ "$?" != "0" ]; then
echo cannot change directory to $1
exit 2
fi
(
echo
echo CMD: $0 $*
tgzdays=31
if [ "$#" -gt 3 ]; then
tgzdays=$4
fi
echo ========= CLEAR tgz @ `date` =========
find . -name "_$2*.tgz" -ctime +${tgzdays} | xargs rm -f
find . -name "_$2*.tar.gz" -ctime +${tgzdays} | xargs rm -f
echo ========= tar tgz @ `date` =========
today=`date '+%Y%m%d%H%M'`
#yyyymmddhhmm=`date '+%Y%m%d%H%M'`
#gzip after tar. NOTE: space is enough.
find . -name "$2*" -mmin +$3 | xargs tar rf _$2$today.tar
gzip _$2$today.tar
rm _$2$today.tar
#tar & gzip. NOTE: limit by -s 129924
#find . -name "$2*" -mmin +$3 | xargs -n 65535 -s 129024 tar czf _$2$today.tgz
echo ========= CLEAR LOG @ `date` =========
find . -name "$2*" -mmin +$3 | xargs rm -f
) >> `dirname $0`/clearlog.log 2>&1