利用Logrotate、Shell脚本、Python脚本实现nginx日志精准切割

对于访问量巨大的网站,产生的访问日志单位基本上是G/天。而nginx本身对日志的管理机制上来说是没有,因此作为站长,假若使用了nginx作为前端web服务器就需要对日志文件进行有效的管理,否则随着时间的推移,我们有限且珍贵的磁盘空间会被日志文件所吞噬!

nginx

老蔡博客这里介绍三种针对nginx日志切割的方法、包括logrotate、shell、python。

一、logrotate的使用

logrotate是linux系统自带的一款的日志管理工具,通过crontab定时任务管理器来实现日志的可控切割,因此logrotate本身只需要配置好若干选项即可对任何的日志甚至文件进行精准切割!

首先确认logrotate是否被安装

如果发现没有,可以使用如下命令进行安装

查看logrotate配置文件,可以使用如下命令进行查询

我们可以很明显的看到logrotate的配置文件是/etc/logrotate.conf,而/etc/logrotate.d/是用于存储其他配置文件的目录。该目录里的所有文件都会被主动的读入 /etc/logrotate.conf中执行。

得到如上信息之后我们编写nginx日志切割文件了,先来看下老蔡博客的nginx配置文件

验证一下配置文件是否有误,使用如下命令强制匹配一次nginx配置文件

[[email protected] ~]# ll /var/log/nginx/
总用量 1352
-rw-r--r-- 1 laocai root 228 8月 9 10:07 lcbk.net.access.log
-rw-r--r-- 1 laocai root 131699 8月 9 10:05 lcbk.net.access.log.1
-rw-r--r-- 1 laocai root 58604 8月 7 03:04 lcbk.net.access.log-20160807.gz
-rw-r--r-- 1 laocai root 70882 8月 8 03:46 lcbk.net.access.log-20160808.gz
-rw-r--r-- 1 laocai root 388651 8月 9 03:41 lcbk.net.access.log-20160809

以上就是关于logrotate的配置

二、shell脚本切割nginx日志

执行完毕之后查看log目录,已经有压缩文件了

最后将脚本添加到定时任务即可,别忘记给予可执行的权限:

三、python脚本切割nginx日志