#! /bin/sh # logclean.sh - maintenance script for logfiles generated by CommModule # run this daily or weekly from cron COMPRESS="xz -9 -M 1GiB" # compression program to use COMPRESS_EXT=xz # file extension for compression program syslog_error() { logger -i -t CommModule/logclean.sh -p user.err $1 } syslog_notice() { logger -i -t CommModule/logclean.sh -p user.notice $1 } # determine location of CommModule if [ -d /home/cacert/www/CommModule ] then # webdb server cd /home/cacert/www/CommModule elif [ -d /root/CommModule ] then # signing server cd /root/CommModule else echo "$0: cannot find CommModule directory" 1>&2 syslog_error "cannot find CommModule directory" exit 1 fi # compress logfiles which have not been modified in at least 48 hours FILES=`find logfile20*.txt -mtime +1 -print` if [ -n "${FILES}" ] then for F in ${FILES} do syslog_notice "Compressing ${F}" && ${COMPRESS} ${F} done fi # move compressed logfiles to oldlogs directory FILES=`find logfile20*.txt.${COMPRESS_EXT} -print` if [ -n "${FILES}" ] then mkdir -p oldlogs for F in ${FILES} do syslog_notice "Moving ${F} to oldlogs" && mv ${F} oldlogs done fi # delete old logfiles which have not been modified in at least 2.5+ years FILES=`find oldlogs/logfile20*.txt.${COMPRESS_EXT} -mtime +913 -print` if [ -n "${FILES}" ] then for F in ${FILES} do syslog_notice "Deleting ${F}" && rm -f ${F} done fi