Как исключить конкретный каталог из подстановочного знака в logrotate? - PullRequest
0 голосов
/ 28 мая 2018

У меня следующая проблема: у меня есть веб-сервер с ~ 50 веб-сайтами, и у каждого есть свой собственный каталог под /var/www/*sitename*, например, /var/wwww/example.org/.

В этих каталогах естьявляются папкой журналов и папкой htdocs, поэтому конфигурация apache выглядит следующим образом:

[...]
DocumentRoot /var/www/example.org/htdocs
CustomLog /var/www/example.org/logs/access.log combined
ErrorLog /var/www/example.org/logs/error.log
[...]

Это то же самое для всех веб-сайтов, чтобы убедиться, что журналы вращаются, я скопировал содержимое /etc/logrotate.d/apache2 втот же файл, но изменил путь следующим образом: /var/www/*/logs/*.log, стандарт таков: /var/log/apache2/*.log.

Таким образом, этот logrotate применяется ко всем веб-сайтам, но теперь моя проблема: один конкретный веб-сайт (и, возможно, больше вбудущее) должно вращаться не каждый день, а еженедельно.И не 14 раз, а, например, 4 раза.

Сейчас я много пытался добиться этого, но не могу заставить его работать.Я создал папки test1 и test2 и сделал несколько файлов access.log.logrotate conf выглядит следующим образом:

/var/log/apache2/test*/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if /etc/init.d/apache2 status > /dev/null ; then \
                    /etc/init.d/apache2 reload > /dev/null; \
                fi;
        endscript
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi; \
        endscript
}

/var/log/apache2/[!t][!e][!s][!t][!2]*/*.log {}

В моем понимании это должно повернуть файл журнала в test1 /, но не в test2 /, но он не работает, правило подстановочного знака сверху все еще применяется.

1 Ответ

0 голосов
/ 18 июня 2018

Попробуйте переместить это правило наверх и проверьте, помогает ли оно.

/var/log/apache2/[!t][!e][!s][!t][!2]*/*.log {}
...