Nginx日志切割

本文主要内容

1. Nginx日志切割脚本编写

2. 使用crontabs定时器插件,定时切割日志

nginx的日志默认都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大不便于运维人员的查看,所有我们可以通过把这个大的日志文件切割成多份不同的小文件作为日志,切割规则可以以天为单位,也可以按照实际需求特殊设置,比如:如果每天有几白G或者几个T的日志的花,可以按照每半天或者每小时对日志进行切割

1. Nginx日志切割脚本编写

1. 创建一个shell 可执行文件:cut_access_log.sh(名字可自定义),内容如下: 

  • LOG_PATH="/usr/local/nginx/logs/" 指定nginx日志目录 (按自己的nginx目录进行响应修改)
  • RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d) 指定日志切割,此处指定按天切割

如果要按照分钟可以设置成

  • RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
  • kill -USR1 `cat $PID`  向Nginx主进程发送信号,用于重新打开日志文件

#!/bin/bash
LOG_PATH="/usr/local/nginx/logs/"
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d)
PID=/usr/local/nginx/logs/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log

#向Nginx主进程发送信号,用于重新打开日志文件
kill -USR1 `cat $PID`

2. 为cut_access_log.sh添加可执行权限

chmod +x xxx.sh 

 3. 执行cut_access_log.sh脚本信息

./cut_access_log.sh

 2. 使用crontabs定时器插件,定时切割日志

 1. 安装定时任务

yum install crontabs

2.  向crontabs中编辑并且添加一行新的任务

crontab -e 打开文件

59 23 * * * /usr/local/nginx/sbin/cut_access_log.sh 指定执行频率(每天23:59分执行一次),及要执行的脚本文件路径

crontab -e 

59 23 * * * /usr/local/nginx/cut_access_log/xxx.sh

 3. 重启定时任务

service crond restart

附:常用的定时任务 

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

crontab -e // 编辑任务

crontab -l // 查看任务列表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值