Ngnix的日誌管理和用定時任務完成日誌切割

2022-07-04 09:33:09 字數 1997 閱讀 9609

一、日誌管理

先來看看ngnix的配置檔案的server段

接下來我們解釋一下預設格式的具體意思

#log_format main '$remote_addr(遠端ip) - $remote_user(遠端使用者) [$time_local](訪問時間) "$request"(請求方式) '

# '$status(狀態302、404、401、403等) $body_bytes_sent(請求體 body 長度等) "$http_referer"(referer**資訊) '

# '"$http_user_agent(使用者**)" "$http_x_forwarded_for(被**的請求的原始ip)"';

注:(1)http_x_forwarded_for:在經過**時,**把你的本來ip加在此頭資訊中,傳輸你的原始ip

(2)日誌的格式我們也可以自己定義

我們具體看一下日誌記錄的資訊

ngnix允許針對不同的server做不同的log,接下來我們自己做乙個

因為我們沒開啟日誌格式,進入配置檔案開啟即可

接下來過載配置檔案成功,然後訪問下伺服器,再檢視log目錄下是否有kelly.log日誌檔案,然後在more kelly.log看是否有日誌記錄

二、用定時任務完成日誌切割備份

思路:用shell寫乙個指令碼,每到00:00:01時就把昨天的日誌按日期時間格式重新命名,放在相應的目錄下,再用usr1資訊號控制ngnix重新生成新的日誌檔案。

接下來我們在/usr/local/ngnix/data目錄下做實驗,建立乙個shell指令碼,檔名為runlog.sh

我以下圖對此指令碼做詳細解釋

我附上該shell指令碼原始碼,方便讀者做測試:

#!/bin/bash

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%y%m")

day=$(date -d yesterday +"%d")

mkdir -p $base_path/$log_path

mv $base_path/access.log $base_path/$log_path/access_$day.log

#echo $base_path/$log_path/access_$day.log

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

接下來做個定時任務,按指定時間自動執行此指令碼(這裡我是做測試,所以我每分鐘執行一下這個指令碼,方便看效果)

然後檢視最終效果

此時,我們已經完成了用定時任務執行指令碼,然後做日誌切割備份。

如果您覺得您能在此博文學到了新知識,請為我頂乙個,如文章中有解釋錯的地方,歡迎指出。

互相學習,共同進步!

firewalld和定時任務管理

list all zones 檢視所有區域的配置資訊 list all 列出當前使用區域的配置 get default zone 檢視預設使用的區域 get zones 檢視所有可用的區域 add port 埠號 tcp 允許該埠服務通過 臨時性 remove port 埠號 tcp 移除該埠的許可...

Nginx指定日誌檔案和定時任務備份日誌

一.給虛擬主機指定日誌檔案 1.指定日誌檔案 nginx允許不同的server使用不同的日誌檔案,修改nginx配置檔案如下 root data1 nginx sbin nginx s reload檢視當前日誌檔案 root data1 logs pwd usr local nginx logs r...

liux下定時任務的管理

為當前使用者 建立cron服務 1.鍵入 crontab e 編輯crontab服務檔案 例如 檔案內容如下 2 bin sh home admin jiaoben buy deletefile.sh 儲存檔案並並退出 2 bin sh home admin jiaoben buy deletefi...