Nginx 有个非常大的缺点,就是日志不能自动分割,死磕着一个文件写到死
如果你重度依赖
access.log
日志进行分析,那长时间面对动辄上 G 的文件,你会很头痛,所以只能自己来写脚本来分割
首先确定思路,最容易想到的方法就是将现在的日志文件挪走,然后期望 Nginx 重新生成一个日志,然后把这个动作定时执行,接下来我们一步一步实现
挪走日志
1 | $ cd /usr/local/nginx/logs |
做完后,Nginx 程序并没有停止,但是也没有生成新的 access.log
文件,查看日志
1 | $ tail -f access.log.1 |
发现日志继续写在了 access.log.1
中,虽然名字改变了,但对于 Nginx 来说文件指向
依然是它,那就需要强迫它重新打开日志文件
1 | $ nginx -s reopen |
执行后,我们会发现新的 access.log
生成了,至此单次流程完成。
我们总不能每次都手动完成这个操作,定时任务是必须的
首先完善下分割脚本
1 | $ cd /usr/local/nginx/logs |
添加执行权限
1 | $ chmod +x split_log.sh |
添加定时任务
1 | $ crontab -e |
然后执行 :wq
退出,系统会自动生成定时任务,每小时执行一次。
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章
