分割nginx日志的实现(避免日志多大)

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

1. 问题提出

nginx的日志没有切分,会非常大,不利于日志的删除和查看

分割nginx日志的实现(避免日志多大)插图

2. 解决思路

写一个脚本,去切分日志使用crontab写一个定时任务,每天切一个。

3. 解决流程

脚本时别人的,拿过来用。

3.1 新建切割日志的脚本/opt/sh/cutlogs.sh

内容如下:

#!/bin/bash # 指定日志和切割后日志备份的目录 YEAR=$(date +%Y) MONTH=$(date +%m) DAY=$(date +%d) YESTERDAY=$(date -d “yesterday” +%Y-%m-%d) LOGS_PATH=/data/docker/saber/logs LOGS_BAK_PATH=/data/docker/saber/logs-bak # 得到1级目录名 if [[ $(($DAY)) -eq 1 ]] then if [[ $(($MONTH)) -eq 1 ]] then LOGS_BAK_PATH=$LOGS_BAK_PATH/$((${YEAR}-1))-12 else if [[ $(($MONTH)) -gt 10 ]] then LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-$((${MONTH}-1)) else LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-0$((${MONTH}-1)) fi fi else LOGS_BAK_PATH=$LOGS_BAK_PATH/${YEAR}-${MONTH} fi # 创建目录 mkdir -p $LOGS_BAK_PATH/${YESTERDAY} # 复制当前的日志文件到备份的目录 cp ${LOGS_PATH}/access.log ${LOGS_BAK_PATH}/${YESTERDAY}/access_${YESTERDAY}.log #cp ${LOGS_PATH}/admin_access.log ${LOGS_BAK_PATH}/${YESTERDAY}/admin_access_${YESTERDAY}.log cp ${LOGS_PATH}/error.log ${LOGS_BAK_PATH}/${YESTERDAY}/error_${YESTERDAY}.log # 清空日志 > ${LOGS_PATH}/access.log #> ${LOGS_PATH}/admin_access.log > ${LOGS_PATH}/error.log

3.2 写crontab定时任务

crontab -e

打开crontab

写入任务,每天1点跑定时任务:

0 1 * * * sh /opt/sh/cutlogs.sh >> /opt/sh/cutlogs.log

3.3 结果

结果如下:

日志全部在/data/docker/saber/logs-bak目录下

分割nginx日志的实现(避免日志多大)插图1

logs-bak下面是月

分割nginx日志的实现(避免日志多大)插图2

月下面是天

分割nginx日志的实现(避免日志多大)插图3

天下面是文件

分割nginx日志的实现(避免日志多大)插图4

4. 总计

使用脚本去做切分使用定时器去每天跑脚本。

到此这篇关于分割nginx日志的实现(避免日志多大)的文章就介绍到这了,更多相关分割nginx日志内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容