我正在尝试利用它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
#
我究竟做错了什么?
答案1
您的配置应如下:
/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
- 这G标志表明你的日志文件名是一个 shell 模式。
- 这乙标志告诉 newsyslog 不要放置日志轮换新日志文件顶部的文本。
- 看newsyslog.conf(5)了解其他旗帜的含义。
如果你想为 Squid 使用 newsyslog,它需要被告知不要执行自己的 logrotate(SquidLogs 常见问题解答):
# squid.conf
logfile_rotate 0
您可以使用 对配置进行试运行newsyslog -nvF | less
。
我的 Squid 配置和试运行命令来源:“使用 newsyslog 进行 Squid 日志轮换”(Jamesoff.net 博客文章和评论)。
答案2
Squid 有自己的日志旋转器:
#/etc/crontab
18 4 1 * * root /usr/local/sbin/squid -k rotate
配置:
#/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 相关的日志,然后向主 httpd 进程发送信号 1(SIGHUP),强制重新打开日志文件文件描述符。