为了账号安全,请及时绑定邮箱和手机立即绑定

nginx中access日志如何做到按时间完美切割

标签:
PHP Linux

nginx web服务器中access日志,默认是不能按时间分隔的,每次日志都是打在access.log上,这样久而久之这个日志文件就特别的大,也不利于清理和管理,故此我们肯定是需要做时间上的切割的,那么如何做到完美的切割的呢?

我们采取的方案是利用shell脚本和crontab定时任务来做

比如新建一个nginx_time_log.sh脚本,里面的内容如下
(当然也可以使用linux中的logrotate来做日志切割)

#!/bin/bash

local_path=/home/work/tp/log/webserver    #找到您服务器中存放access日志的目录

cd $local_path  #进入这个目录

mv access_log $local_path/access_log` date +%Y%m%d%H`  #把当前的access_log挪到这个时期下,其实就是相当于日志的切分

nginx_pid=`ps -ef |grep -v grep |grep “nginx: master process “|awk -F” ” ‘{print $2}’`  #找到您nginx的进程

` kill -USR1 $nginx_pid`  #执行usr1

这样就会先把access_log 移动到一个access_log.时间 的日志文件,并且会新生产一个access_log文件

最后通过定时任务来让这个nginx_time.sh脚本按每小时来进行切分

crontab命令如下:

0 */1 * * * sh /xxx(您这个脚本的存放命令)/nginx.sh  按每小时切割

日志图如下:
图片描述

点击查看更多内容
18人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
2.1万
获赞与收藏
671

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消