Я пытаюсь использовать newsyslog.conf -- newsyslog(8) configuration file
повернуть мой apache
/nginx
/squid
лог-файлы:
# uname -a
FreeBSD X 9.2-RELEASE-p17 FreeBSD 9.2-RELEASE-p17 #0 r282430: Mon May 4 13:59:58 PDT 2015 root@X:/usr/obj/usr/src/sys/R610 amd64
# tail -1 /etc/newsyslog.conf
<include> /etc/newsyslog-local.conf
# cat /etc/newsyslog-local.conf
/var/log/httpd-*.log root:wheel 644 7 * @T00 JC /var/run/httpd.pid
/var/log/nginx-*.log root:wheel 644 7 * @T00 JC /var/run/nginx.pid
/var/log/squid/*.log squid:squid 640 7 * @T00 JC /var/run/squid/squid.pid
# newsyslog
# echo $?
0
# ll /var/log/httpd-* /var/log/nginx-* /var/log/squid/*log*
-rw-r--r-- 1 root wheel 794179378 Jun 10 12:13 /var/log/httpd-access.log
-rw-r--r-- 1 root wheel 236848603 Jun 10 12:09 /var/log/httpd-error.log
-rw-r--r-- 1 root wheel 3513917 Jun 10 12:09 /var/log/httpd-ssl_request.log
-rw-r--r-- 1 root wheel 1789191504 Jun 10 12:13 /var/log/nginx-access.log
-rw-r--r-- 1 root wheel 165855753 Jun 10 12:13 /var/log/nginx-error.log
-rw-r----- 1 squid squid 5604675 Jun 10 12:01 /var/log/squid/access.log
-rw-r----- 1 squid squid 12589 Jun 10 10:47 /var/log/squid/cache.log
#
Что я делаю не так?
Ваша конфигурация должна быть следующей:
/var/log/httpd-*.log root:wheel 644 7 * @T00 GBJC /var/run/httpd.pid 1
/var/log/nginx-*.log root:wheel 644 7 * @T00 GBJC /var/run/nginx.pid 1
/var/log/squid/*.log squid:squid 640 7 * @T00 GBJC /var/run/squid/squid.pid 30
Если вы хотите использовать newsyslog для Squid, ему нужно запретить выполнение собственного logrotate (SquidLogs FAQ):
# squid.conf
logfile_rotate 0
Вы можете выполнить пробный запуск своей конфигурации с помощью newsyslog -nvF | less
.
Мой источник конфигурации Squid и команды сухого запуска: «Ротация журнала Squid с помощью newsyslog» (сообщение в блоге Jamesoff.net и комментарии).
У Squid есть собственный ротатор логов:
#/etc/crontab
18 4 1 * * root /usr/local/sbin/squid -k rotate
config:
#/usr/local/etc/squid/squid.conf
logfile_rotate 10
Apache следует осторожно вращать
#/etc/newsyslog.conf
/var/log/apache/vhosts/*.log 660 5 * $W0D0 CG
/var/log/apache/tools/*.log 660 5 * $W0D0 CG
/var/log/apache/*.log 660 5 * $W0D0 CG /var/run/httpd.pid 1
Сначала вы должны повернуть все журналы, связанные с apache, затем отправить сигнал 1 (SIGHUP) главному процессу httpd, заставляя дескрипторы файлов журналов быть повторно открытыми.