- 参考文档
- nginx 切割日志
- https://www.ttlsa.com/nginx/nginx-log-cutting/
- nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理。当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割。
- 1.日志文件切割要求
- 由于 Nginx 的日志都是写在一个文件当中的,因此,我们需要每天零点将前一天的日志存为另外一个文件,这里我们就将 Nginx 位于 logs 目录中的 access.log 存为 access_[yyyy-MM-dd].log 的文件。其实 logs 目录中还有个 error.log 的错误日志文件先不管。
- 2.脚本 并加入计划任务
- [root@niaoyun-101 logs]# cat cut_log.sh
- #! /bin/bash
- #获取当前的日期
- #将昨天的日志文件重命名
- #向nginx 进程发送重新打开日志文件的信号 它可以实现平滑重启
- #nginx启动新的进程 旧的进程继续提供服务 等它服务结束就自动关闭
- t1=`date +%F`
- /bin/mv /opt/nginx/logs/access.log /opt/nginx/logs/access_$t1.log
- /bin/kill -HUP `cat /opt/nginx/logs/nginx.pid`
- [root@niaoyun-101 logs]# crontab -l
- 0 3 * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1
- 10 0 * * * /bin/sh /opt/nginx/logs/cut_log.sh
- [root@niaoyun-101 logs]#
- 3.验证
- [root@niaoyun-101 logs]# ll
- total 12
- -rw-r--r-- 1 root root 1610 Mar 15 13:37 access_2016-03-15.log
- -rw-r--r-- 1 root root 0 Mar 15 13:39 access.log
- -rw-r--r-- 1 root root 140 Mar 15 13:39 cut_log.sh
- -rw-r--r-- 1 root root 0 Mar 12 00:01 error.log
- -rw-r--r-- 1 root root 6 Mar 15 09:51 nginx.pid
- [root@niaoyun-101 logs]#
- 最新活动: 2016-03-21 18:51
- 浏览: 1216
- 关注: 0 人
编辑回复