Nginx 日誌切割(手動 自動)

2022-08-26 05:03:07 字數 1369 閱讀 8921

(手動)

現有的日誌都會存在 access.log 檔案中,但是隨著時間的推移,這個檔案的內容會越來越多,體積會越來越大,不便於運維人員檢視,所以我們可以通過把這個大的日誌檔案切割為多份不同的小檔案作為日誌,切割規則可以以天為單位,如果每天有幾百g或者幾個t的日誌的話,則可以按需以每半天或者每小時對日誌切割一下。

具體步驟如下:

建立乙個shell可執行檔案:cut_my_log.sh,內容為:

#!/bin/bash

log_path="/var/log/nginx/"

record_time=$(date -d "yesterday" +%y-%m-%d+%h:%m)

pid=/var/run/nginx/nginx.pid

mv $/access.log $/access.$.log

mv $/error.log $/error.$.log

#向nginx主程序傳送訊號,用於重新開啟日誌檔案

kill -usr1 `cat $pid`

為cut_my_log.sh新增可執行的許可權:

chmod +x cut_my_log.sh

測試日誌切割後的結果:

./cut_my_log.sh

nginx 日誌切割-定時

使用定時任務

安裝定時任務:

yum install crontabs

*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

重啟定時任務:

service crond restart

附:常用定時任務命令:

service crond start //啟動服務

service crond stop //關閉服務

service crond restart //重啟服務

service crond reload //重新載入配置

crontab -e // 編輯任務

crontab -l // 檢視任務列表

定時任務表示式:

cron表示式是,分為5或6個域,每個域代表乙個含義,如下所示:

分 時 日 月 星期幾 年(可選)

取值範圍 0-59 0-23 1-31 1-12 1-7 2019/2020/2021/…

常用表示式:

每分鐘執行:

*/1 * * * *

每日凌晨(每天晚上23:59)執行:

59 23 * * *

每日凌晨1點執行:

0 1 * * *

每天定時為資料庫備份:

nginx手動日誌切割

進入nginx安裝目錄 cd usr local nginx sbin建立指令碼檔案 vim cut my log.sh往裡輸入 bin bash 自定義的nginx日誌目錄 log path var log nginx 以年月日時分為單位記錄 record time date d yesterda...

Nginx日誌手動切割

現有的日誌都會存在access.log檔案中,但是隨著時間的推移,這個檔案的內容會越來越多,體積會越來越大,不便於運維人員檢視,所以我們可以通過把這個大的日誌檔案切割為多份不同的小檔案作為日誌,切割規則可以以天為單位,如果每天有幾百g或者幾個t的日誌的話,則可以按需以每半天或者每小時對日誌切割一下。...

配置 Nginx 自動切割日誌

第一種方法 mv opt nginx logs access.log opt nginx logs access date y m d log killall s usr1 nginx 使用usr1引數通知nginx程序切換日誌檔案 將以上指令碼內容儲存為檔名為 logcron.sh 存到自定的目錄...