#!/bin/bash function usage { echo "Usage: ${0} [days (default 2)]" exit 1 } echo Starting $0 $* LogDir=${1} if [ "${LogDir}" == "" ] then usage fi Days=${2} if [ "${Days}" == "" ] then Days=2 fi DateCriteria="${Days} days ago" Oldest=$(date -d "${DateCriteria}" '+%Y-%m-%d') echo "Looking for log files older than ${DateCriteria} in ${LogDir}" LogArchiveDir=/home/cvtt/prod/archive/logs mkdir -p ${LogArchiveDir} echo "find ${LogDir}/ '(' -name '*.log' -o -name '*.log.*' ')' -type f -not -newermt ${Oldest})" files=$(find ${LogDir}/ '(' -name '*.log' -o -name '*.log.*' ')' -type f -not -newermt ${Oldest}) if [ "$files" == "" ] then echo "No files found older than ${Oldest} in ${LogDir}" else echo Archiving files: echo ----------------- echo ${files} oldest_file=$(ls -t ${files} | tail -1) youngest_file=$(ls -tr ${files} | tail -1) tstmp1=$(stat --printf '%y' ${oldest_file}) tstmp2=$(stat --printf '%y' ${youngest_file}) tmsig="$(date -d "${tstmp1}" +"%Y%m%d_%H%M%S")-$(date -d "${tstmp2}" +"%Y%m%d_%H%M%S")" echo $tmsig Cmd="tar zcvf ${LogArchiveDir}/${tmsig}.logs.tgz ${files}" echo $Cmd eval $Cmd rm $files fi echo Done ${0} ${*}