實現nginx日誌按照時間分割儲存

2021-10-05 19:33:29 字數 822 閱讀 2369

backups_log.sh

#設定log日誌的儲存位址log_path=/home/soft/nginx/logs

#設定歷史日誌的儲存位址history_log_path=/home/soft/nginx/history_logs

#獲取分割日誌時所需要的時間當做日誌檔名稱time=$(date +%y-%m-%d)

#將當前日誌備份到指定儲存目錄

mv$/access.log $/access_log/$_access.log

或者cp $/access.log $/access_log/$_access.log

#傳送訊號重新開啟日誌檔案

kill -usr1 $(cat $/nginx.pid

或者 etho 「 」 >

$/access.log

將sh指令碼加入到定時任務中,每天23:59執行

crontab -e

新增定時任務

59 23 * * * /home/sh/backups_log.sh

注意事項:

1.在沒有執行kill -usr1 nginx_pid 之前,即便已經對檔案執行了mv命令也只是改變了檔案的名稱,nginx還是會向新命名的檔案中照常寫入日誌資料。原因在於linux系統中,核心是根據檔案描述符來找檔案的

2.新增定時任務後如果定時任務沒有起作用,則使用 ps -aux | grep cron 確認下服務是否已經開啟

-usr1 是程序間通訊的訊號中的一種,至於nginx程序接收到該訊號做什麼操作是它內部定義的,除此之外我們可以使用 kill -l 確認liunx中包含哪些訊號

nginx日誌分割

以下這個指令碼實施的核心是 每天凌晨將日誌檔案壓縮並移動到相應的年份月份目錄下,然後重新生成日誌檔案,同時記錄日誌 bin bash logs path home wwwlog 日誌存放位置 year date y 年份 month date m 月份 day date y m d 日期 time ...

Nginx 日誌分割

usr bin bash 日誌檔案存放目錄 logs path var log nginx nginx程序pid nginx pid cat var run nginx.pid 日誌名稱 logs name date d yesterday y m d 改名 mv logs path access....

NGINX日誌分割

nginx日誌分割 nginx 日誌分割 主要用到的命令是 usr local nginx sbin nginx s reopen nginx s reopen 意思是重新生成日誌檔案。所以我們可以每天定時把當天的日誌問價mv 成帶日期的,然後再生成新的檔案 usr local nginx 是我的n...