- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
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)系藍隊云一起探討。
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP