nginx 的日志自动切割是什么时候加上的.

CheneyWong 发布于 2014/10/04 10:44
阅读 3K+
收藏 5

今天看 nginx log, 竟然自动切割了,这个功能是哪个版本加上的, 反正 1.6 是有了.格式是:

xx.log

xx.log.1

xx.log.2.gz

xx.log.3.gz

加载中
1
南湖船老大
南湖船老大

如果是yum/apt安装的话,会自动配置logrotate,和Nginx软件本身没有任何关系。

这个动作是在apt-get install的时候执行的,你去看编译参数。。。。这个,你找错地方了。你还是去找logrotate的配置文件吧。

另外,你要重新编译和logrotate没有任何关系,也不会有任何影响(除非你的文件位置变了)。

一号男嘉宾
一号男嘉宾
船老大说得对
CheneyWong
CheneyWong
懂了, 我还以为 logrotate 是 nginx 的插件呢, 原来是独立程序.
2
eechen
eechen
logrotate作为一个/etc/cron.daily/logrotate任务每日定时执行。
你往/etc/logrotate.d/下添加配置文件 logrotate执行时会自动根据配置文件进行日志归档。

比如apt-get安装的Nginx官方源的日志归档配置文件/etc/logrotate.d/nginx内容为:

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

配置说明:
daily: 日志文件每天进行滚动
missingok: 如果找不到这个log档案,就忽略过去
rotate: 保留最进52次滚动的日志
compress: 通过gzip压缩转储以后的日志
delaycompress: 和compress一起使用时,转储的日志文件到下一次转储时才压缩
notifempty: 如果是空文件的话,不转储
create mode owner group:转储文件,使用指定的文件模式创建新的日志文件
sharedscripts: 运行postrotate脚本(该脚本作用为让nginx重新生成日志文件)
postrotate/endscript: 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

1
Feng_Yu
Feng_Yu
很多发行版自带logrotate,这个小工具就是用来滚动日至的
0
CheneyWong
CheneyWong

ubuntu下直接 apt-get 的.

configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.6.0/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.6.0/debian/modules/nginx-dav-ext-module --add-module=/build/buildd/nginx-1.6.0/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.6.0/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.6.0/debian/modules/ngx_http_substitutions_filter_module

没有 logrotate

-------------------------------------------------------------------------------------

我想自己加个模块, 又怕自己编译后 log滚动就没有了.

刘草
刘草
logrotate不是nginx中的模块吧,也是一个单独的小应用。安装这个应用后,再把nginx的日志文件的路径配置进去,再设置下logrotate的参数,它就会自动进行分割归档了。
返回顶部
顶部