я могу использовать logrotate для вращения / базовых файлов?

Сертификат SSL предоставит повышенную безопасность Вашим пользователям, как Вы говорите в a). Мы используем один из namecheap.com, поскольку это немного более дешево, и мы стараемся не иметь дело с godaddy каждый раз, когда по-человечески возможно.

0
задан 4 November 2010 в 05:53
2 ответа

Я объединился logrotate с некоторым волшебством оболочки получить желаемый эффект. В основном logrotate все еще отвечает за перемещение и сжатие файлов и затем начинание, сценарий должен был удалить старые файлы, а также обеспечение каталога не имеет больше чем приблизительно 50 файлов. Вот то, что я сделал:

/mycores/core_* {
    compress
    daily
    missingok
    nocreate
    nodelaycompress
    olddir /mycores/old
    sharedscripts
    postrotate
        # delete all core_*.gz files older than 28 days
        find /mycores/old -name "core_*.gz" -mtime +28 -delete
        # make sure we have a max of 50 files; delete the oldest files if we have too many
        for filename in $(find /mycores/old/ -name "core_*.gz" -printf "%T+ %p\n" | sort --reverse | tail --lines=+51 | cut -d' ' -f2); do rm $filename; sleep 0.5; done
    endscript
}

Я не лучший сценарист удара там, так, чтобы postrotate раздел сценария мог бы быть более тяжелым, чем необходимый... :)

1
ответ дан 4 December 2019 в 13:01

Мы используем сценарий как это. Я не вижу точку вовлечения logrotate как

  1. это не файлы журнала
  2. Вы не поворачиваете их

сценарий:

#!/bin/bash
EMAIL_TO="<%= mail %>"
EMAIL_SUBJ="Found core files on `hostname -s`"
DATETIME=`date +"%F-%H%M%S"`
EMPTY_CORE_FILES=`find /var/log/core/ -mmin +60 -type f -empty -not -name "*.gz" -not -name "*.zip" -print -exec rm {} \;`
CORE_FILES=`find /var/log/core/ -mmin +60 -type f -not -empty -not -name "*.gz" -not -name "*.zip"`
NUM_CORE_FILES=`echo $CORE_FILES | wc -w`

lockfile="/tmp/`basename $0`.lock"
lockfile -1 -r 5 -l 84600 ${lockfile} || exit 1
trap "/bin/rm -f $lockfile" EXIT INT TERM

for f in $CORE_FILES;
do
  gzip -9 $f
done

if [ $NUM_CORE_FILES != 0 ]
then

  mail "$EMAIL_TO" -s "$EMAIL_SUBJ" <<EOF
I found and gzipped $NUM_CORE_FILES on $HOSTNAME in /var/log/core, please investigate.

Files Found:
$CORE_FILES

Empty Files:
$EMPTY_CORE_FILES

EOF

fi
2
ответ дан 4 December 2019 в 13:01

Теги

Похожие вопросы