国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Nginx的日志切割

2024-04-19 17:24:26 526

Nginx的日志切割

藍隊云小課堂:

問(wèn)題描述

nginx默認沒(méi)有提供對日志文件的分割功能,所以隨著(zhù)時(shí)間的增長(cháng),access.log和error.log文件會(huì )越來(lái)越大,本文主要介紹了分割nginx日志的實(shí)現

解決辦法

?      寫(xiě)一個(gè)腳本,去切分日志

?      使用crontab寫(xiě)一個(gè)定時(shí)任務(wù),每天切一個(gè)。

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
 
#
創(chuàng )建目錄
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

2. 建立計劃任務(wù)

crontab -e
#
寫(xiě)入以下內容
0 1 * * * sh /opt/sh/cutlogs.sh >> /opt/sh/cutlogs.log

 

更多小知識,可聯(lián)系藍隊云一起探討。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->