linux nginx日志配置,Linux下配置Nginx按天切割日志

Nginx由于轻巧和高效的设计风格,去掉了一些额外的功能,所以它不像apache那样有自动切割日志。

但是这个功能在实际项目中应用是非常重要的,日志文件如果不进行切割会随着时间的增长而变得越大越庞大。其实要实现这个功能我们只需要很简单的几句shell就能搞定了。下面我们一步一步来实际nginx按天切割日志的功能。

一、准备工作

在开始实现这个功能之前我们需要一些前提条件,那就是我们的服务器上面必须安装好了crontab服务。如果到这里你还不了解crontab是什么东西,你可以参考本站的其它文章了解crontab相关的内容然后再回到这里继续下一步的了解。

二、配置nginx的日志文件存在位置

打开nginx的配置文件,将所有的error_log和access_log的存入位置修改成存放到/var/log/nginx/today/目录里面来。

三、建立一个脚本文件,并保证这个文件有可执行的权限:

1、建立一个文件/root/log.nginx.sh(这里只是作为演示,实际上这个脚本文件你可以随意的放在哪个目录和给它取一个你喜欢的名字),在文件里面粘贴如下内容:

#!/bin/bash

declare logs_path="/var/log/nginx";

declare need_delete_path=${logs_path}/$(date -d "7 days ago" "+%Y_%m_%d");

declare yestoday_log_path=${logs_path}/$(date -d "yesterday" "+%Y_%m_%d");

rm -rf ${need_delete_path}

rm -rf ${yestoday_log_path}

mv ${logs_path}/today ${yestoday_log_path}

mkdir -p ${logs_path}/today

/etc/init.d/nginx reload

2、赋予这个文件可执行权限:

chmod 777 /root/log.nginx.sh

3、将这个脚本加入到crontab中去,每天0点0分执行一次:

0 0 * * * /root/log.nginx.sh

上面这个脚本的作用就是每天凌晨0点0分的时候创建一个以昨天的日期命名的文件夹,然后把/var/log/nginx/today/这个文件夹里面的日志文件全部移动到新建的文件夹里面去。today这个文件夹每天凌晨都会被清空一次,这样就实现了nginx按天切割日志的功能了。

脚本除了清空today文件夹外还会删除7天以前的日志文件,只保留最近7天的日志。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值