Linux环境下使用logrotate工具实现nginx日志切割

一. 前提背景及需求

Nginx运行日志默认保存在Nginx安装目录下的 /usr/local/nginx/logs目录(或/var/log/nginx目录下), 包含access.log和error.log两个文件。

(1) access.log 记录了哪些用户、哪些页面以及用户浏览器、ip和其他的访问信息;

(2) error.log 则是记录服务器错误日志。

 

在所有时间内nginx产生的日志均保存在同一个文件下,随着访问量的增加,尤其是access.log增长极快,服务器会很快消耗磁盘空间,影响服务器效率。

另外,当需要对日志文件里面记录的数据进行分析时,每次都要耗时很久才能下载这个庞大的日志文件,浪费不必要的时间。

因此急需一个处理方案能够自动化的实现按天或者按文件大小来切割nginx日志记录。

 

二. 解决方案: 使用logrotate工具实现日志切割

1. logrotate工具的介绍

logrotate是一个linux系统日志的管理工具。可以对单个日志文件或者某个目录下的文件按时间/大小进行切割,压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。

logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,具体可以查询crontab的配置文件/etc/anacrontab。系统会按照计划的频率运行logrotate,通常是每天。在大多数的Linux发行版本上,计划每天运行的脚本位于 /etc/cron.daily/logrotate。

主流Linux发行版上都默认安装有logrotate包,如果你的linux系统中找不到logrotate, 可以使用apt-get或yum命令来安装。

接下来,我们查看logrotate的配置文件

rpm -ql logrotate

image

image

image

image

 

 

 
posted @ 2025-08-29 13:54  疯狂的米粒儿  阅读(38)  评论(0)    收藏  举报