#!/bin/sh ############################################################################################ ## Nome log_giorno_precedente.txt ## ## Script per svecchiare i log applicativi, vengono cancellati i log vecchi di 90 giorni ## ## e compressi i file del giorno precedente ## ## (w) 2007-08-22 Mauro Tedesco (c) GNU GPL ## ############################################################################################ FILE_LOG=/appl-log/log/log.txt DIR_LOG=/appl-log/applicazione/ #HOSTNAME=`hostname` #SUFFIX=`grep $HOSTNAME /etc/hosts | awk '{ print $1}'` GIORNO=`date '+%d'` MESE=`date '+%m'` ANNO=`date '+%Y'` DATAOGGI=$ANNO-$MESE-$GIORNO if [ $GIORNO -eq 1 ] then if [ $MESE -eq 1 ] then MESE=12 ANNO=`expr $ANNO - 1` else MESE=`expr $MESE - 1` fi case $MESE in 1)GIORNO=31;; 2)GIORNO=`echo $ANNO|awk ' { MOD4=$1%4 MOD100=$1%100 MOD400=$1%400 if (((MOD4 == 0) && !(MOD100 == 0)) || (MOD400 == 0)) print "29" else print "28"}'`;; 3)GIORNO=31;; 4)GIORNO=30;; 5)GIORNO=31;; 6)GIORNO=30;; 7)GIORNO=31;; 8)GIORNO=31;; 9)GIORNO=30;; 10)GIORNO=31;; 11)GIORNO=30;; 12)GIORNO=31;; esac else GIORNO=`expr $GIORNO - 1` fi if [ $MESE -lt 10 ] then MESE=`echo $MESE | awk '{LUNG_MESE=length($1) M = substr ($1, LUNG_MESE, 1) print M}'` MESE='0'$MESE fi if [ $GIORNO -lt 10 ] then GIORNO=`echo $GIORNO | awk '{LUNG_GIORNO=length($1) G = substr ($1, LUNG_GIORNO, 1) print G}'` GIORNO='0'$GIORNO fi DATAIERI=$ANNO-$MESE-$GIORNO #################################Preparazione delle info da inserire nel LOG ####################### echo "##################################### file che verranno zippati ################# " >> $FILE_LOG echo $DATAOGGI >> $FILE_LOG ls $DIR_LOG/access_log.$DATAIERI.txt >> $FILE_LOG 2> /dev/null gzip $DIR_LOG/access_log.$DATAIERI.txt ls $DIR_LOG/error_log.$DATAIERI.txt >> $FILE_LOG 2> /dev/null gzip $DIR_LOG/error_log.$DATAIERI.txt echo "##################################### FINE file zippati ################# " >> $FILE_LOG echo "#" >> $FILE_LOG echo "##################################### file che verranno cancellati per svecchiamento ################# " >> $FILE_LOG find $DIR_LOG -mtime +90 -type f -print >> $FILE_LOG 2> /dev/null /bin/rm ` find $DIR_LOG -mtime +90 -type f -print` 2> /dev/null echo "##################################### FINE file cancellati ################ " >> $FILE_LOG