LINUX.ORG.RU
ФорумAdmin

Надо периодически удалять старые логи


0

0

Ежедневно создаю логии (все файлы в одном каталоге), в именах которых присутствует дата и временная метка, Y M D h m s 20100406-235901_bla-bla-bla 20100407-235901_bla-bla-bla 20100408-235901_bla-bla-bla . . . . . .

Надо периодически удалять старые файлы, т.е. оставить с актуальностью, скажем, за интервал, 7 дней, 30 дней или за пару месяцев. Помогите составить такой sh скриптик.


find /var/log -mtime +60 -type f | xargs rm

что-нибудь подобное, но аккуратно, т.к. в /var/log не только логи лежать могут, можно -maxdepth добавить, чтобы не входило в каталоги уровнем ниже

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Можно и без пайпа, если ключ -delete указать.

А вообще, по идее, этим должен заниматься logrotate. Надо только настроить.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Sylvia

Например:

#/etc/logrotate.d/blabla
/var/log/blabla/*_bla-bla-bla {
    monthly
    rotate 0
    copytruncate
    compress
    notifempty
    missingok
}
Хотя, возможно, надо что-нибудь еще дописать. Но это надо маны читать :)

Eddy_Em ☆☆☆☆☆
()

Если в системе есть tmpwatch, то посмотрите на него. Если он есть в наличии, то пример можно посмотреть вот здесь:

cat /etc/cron.daily/tmpwatch

ansky ★★★★★
()

man logrotate, и не надо никаких костылей

leave ★★★★★
()

Сделал следующий скрипт:

#!/bin/sh
#
# file: log.sh
#
SITE=[имя сайта]

FILE_PATH=/home/www/$SITE/log/

FILE_ACC=access_$SITE.log
FILE_ERR=error_$SITE.log

tar czvf $FILE_PATH$(date +%Y%m%d-%H%M%S)_$SITE.tgz $FILE_PATH$FILE_ACC $FILE_PATH$FILE_ERR

cat /dev/null > $FILE_PATH$FILE_ACC
cat /dev/null > $FILE_PATH$FILE_ERR

Ставлю скрипт на ежедневное выполнение в cron

crontab -e
23 59 * * * /[полный путь]/log.sh

Получаю:

. . . 
20100409-235901_[имя сайта].tgz
20100410-235901_[имя сайта].tgz
. . . 
Надо прочитать каталог, пропарсить имена файлов... В общем глупые вопросы: как прочитать каталог, как пропарсить полученные имена файлов...

lux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.