如何对Nginx日志文件进行切割保存

日积月累下,日志文件会越来越大,日志文件太大严重影响服务器效率,须要定时对日志文件进行切割。
切割的方式有按月切割、按天切割、按小时切割,一般都是按天切割。
那么如何进行切割呢?
思路:

  1. 创建日志文件存放路径
  2. 将日志文件以当天时间为名字进行重命名
  3. 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件

思路知道了,能不能具体点,show me code
下面以每天凌晨00:00切割nginx的访问日志access_log为例,详细讲解切割步骤

步骤一:创建一个div_nginx_log.sh脚本,输入下面按天切割日志文件的shell脚本

#!/bin/bash
// nginx的日志文件路径
logs_path="/data1/logs/"

// 创建日志文件存放路径
mkdir -p ${logs_path}$(date -d "yesterday" + "%Y")/$(date -d "yesterday" + "%m")/
// 将日志文件以当天时间为名字进行重命名
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
// 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件
kill -USR1 `cat /var/nginx/nginx.pid`

步骤二:设置crontab,每天凌晨00:00切割nginx日志文件

// 进入编辑crontab
crontab -e

// 输入配置
// div_nginx_log.sh脚本的路径要写绝对路径
00 00 * * * /bin/bash /root/div_nginx_log.sh

按上面两个步骤来,这样就大功告成了

注意:

若更改crontab配置后不起效果,重新加载cron:/etc/init.d/cron reload
若还不行就重启crontab服务:/etc/init.d/crond restart

转载于:https://www.cnblogs.com/phonecom/p/11224387.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值