nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析。以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的。下面来说说nginx日志切割。
关于nginx相关日志配置参见:《nginx日志配置》一文。logrotate用法参见《logrotate日志管理工具》。
1. 定义日志轮滚策略
# vim nginx-log-rotate文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/
/data/weblogs/*.log { nocompress daily copytruncate create notifempty rotate 7 olddir /data/weblogs/old_log missingok dateext postrotate /bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null || true endscript }
[warning]/data/weblogs/*.log使用通配符时,/data/weblogs/目录下的所有匹配到的日志文件都将切割。如果要切割特定日志文件,就指定到该文件。[/warning]文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/
2. 设置计划任务
# vim /etc/crontab文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/
59 23 * * * root ( /usr/sbin/logrotate -f /PATH/TO/nginx-log-rotate)
这样每天23点59分钟执行日志切割。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/
如需转载请注明出处: https://www.ttlsa.com/html/3166.html文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/ 文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-log-cutting/
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
6F
官方推荐的是 logrotate。然后USR1,不要用HUP
5F
vps 系统貌似会自动切割nginx 日志文件,按天保存 自动的
B1
@ 番号姐115 说明你的nginx已经是配置好的。
B2
@ TTLSA yum 方式安装后,我没有做任何修改,第二天我查看日志的时候,已经按天自动打包了。
4F
@匿名
对的
USR1等待子进程退出,然后重载配置
HUP直接杀死子进程,然后重载配置
3F
@匿名
对的,USR1会等待子进程处理完请求之后,退出子进程,然后重载新的配置文件,并且生成子进程。
而HUP则是直接杀死子进程,然后重载配置文件,最后生成子进程。
2F
是不是用kill -USR1 更好点 切割日志
1F
哈哈,不许要写定时任务计划,只要把脚本直接扔在/etc/logrotate.d/目录下面就行啦。。
B1
@ 独占默默 要23点59分钟执行日志切割。默认的cron任务没有这个点执行的
来自外部的引用