diff options
Diffstat (limited to 'abs/core/rsyslog/log_care.sh')
-rw-r--r-- | abs/core/rsyslog/log_care.sh | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/abs/core/rsyslog/log_care.sh b/abs/core/rsyslog/log_care.sh index b0a774b..ced0f06 100644 --- a/abs/core/rsyslog/log_care.sh +++ b/abs/core/rsyslog/log_care.sh @@ -1,14 +1,16 @@ #!/bin/bash MYTH_RUN_STATUS=1 . /etc/profile -YEAR=`date +%Y` -LASTYEAR=$(($YEAR - 1)) -for DATE in $YEAR $LASTYEAR -do - echo "Compressing log files" - find /var/log/$DATE* -mtime +1 -exec gzip -9 {} \; + +BackupDir="/var/log/20*-*-*" +KeepBackups=14 +NumBackups=`ls -d $BackupDir | wc -l` + +if [[ $NumBackups > $KeepBackups ]]; then echo "Deleting old log files" - find /var/log/$DATE* -mtime +12 -exec rm -rf {} \; - echo "Deleting empty directories" - find /var/log/$DATE* -depth -type d -empty -exec rm -rf {} \; -done + numdel=$(($NumBackups-$KeepBackups)) + rm -rf `ls -d $BackupDir | head -$numdel` +fi + +echo "Compressing log files" +find $BackupDir -type f -mtime +2 \( ! -iname "*.gz" \) -exec gzip -9 {} \; |