У меня следующая проблема: у меня есть веб-сервер с ~ 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 /, но он не работает, правило подстановочного знака сверху все еще применяется.