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

2021-08-21 19:47:31 字數 3003 閱讀 2504

一.給虛擬主機指定日誌檔案

1.指定日誌檔案

nginx允許不同的server使用不同的日誌檔案,修改nginx配置檔案如下:

}}

[root@data1 nginx]# ./sbin/nginx -s reload
檢視當前日誌檔案

[root@data1 logs]# pwd 

/usr/local/nginx/logs

[root@data1 logs]# ll

總用量 16

-rw-r--r--. 1 root root 0 7月 27 12:56 access.log

-rw-r--r--. 1 root root 0 7月 27 12:56 a.com.access.log

-rw-r--r--. 1 nobody root 11713 7月 27 12:56 error.log

-rw-r--r--. 1 root root 5 7月 24 20:50 nginx.pid

[root@data1 logs]# cat access.log

[root@data1 logs]# cat a.com.access.log

[root@data1 logs]#

當前access.log和a.com.access.log檔案都是空的

3.訪問測試

3.1 訪問a.com

檢視日誌

[root@data1 logs]# cat access.log 

[root@data1 logs]# cat a.com.access.log

[root@data1 logs]#

只有a.com.access.log中有寫入訪問日誌

3.2 訪問b.com:1234

檢視日誌

[root@data1 logs]# cat access.log 

[root@data1 logs]# cat a.com.access.log

[root@data1 logs]#

可以看出訪問a.com的時候訪問記錄是儲存在a.com.access.log中, 

訪問b.com:1234的時候訪問記錄是儲存在預設的日誌檔案access.log中

二.定時任務備份日誌

1.建立乙個shell指令碼,用於備份日誌檔案

[root@data1 nginx]# cat bak_log.sh 

#!/bin/bash

base_path='/usr/local/nginx/logs' # 日誌根目錄

log_path=$(date -d yesterday +"%y%m") # 備份日誌目標目錄,使用年月生成,即乙個月的日誌備份在同乙個目錄

second=$(date -d yesterday +"%h:%m:%s") # 這裡用當前時間的時分秒來作為檔名

mkdir -p $base_path/$log_path # 建立目標目錄

mv $base_path/access.log $base_path/$log_path/access_$second.log # 備份日誌

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid` # 重讀日誌

這裡為了方便演示,以時分秒為檔案字尾

2.建立crontab建立定時任務

*/1 * * * * sh /usr/local/nginx/bak_log.sh

檢視定時任務crontab -l

[root@data1 nginx]# crontab -l

*/1 * * * * sh /usr/local/nginx/bak_log.sh # 一分鐘執行一次"sh /usr/local/nginx/bak_log.sh"這個命令

關於crontab定時任務詳見 

3.檢視日誌檔案

[root@data1 logs]# pwd

/usr/local/nginx/logs

[root@data1 logs]# ll

總用量 24

drwxr-xr-x. 2 root root 4096 7月 28 17:41 201807

-rw-r--r--. 1 nobody root 0 7月 28 17:41 access.log

-rw-r--r--. 1 nobody root 392 7月 27 13:04 a.com.access.log

-rw-r--r--. 1 nobody root 11774 7月 27 13:02 error.log

-rw-r--r--. 1 root root 5 7月 24 20:50 nginx.pid

如圖,在nginx的logs目錄下已經生成了201807這個目錄,檢視201807

[root@data1 logs]# ll 201807/

總用量 4

-rw-r--r--. 1 nobody root 422 7月 28 17:45 access_17:46:01.log

可以看出日誌 已經備份到201807這個目錄下

Redis日誌級別和指定日誌檔案

1.從conf檔案可知 redis 總共支援四個級別 debug verbose notice warning debug 會列印生成大量資訊,適用於開發 測試階段 verbose 包含很多不太有用的資訊,但是不像debug級別那麼混亂 notice 適度冗長,適用於生產環境 warning 僅記錄...

nginx定時任務分割日誌

nginx安裝在 usr local資料夾下 1.在nginx根目錄下建立乙個檔案data,儲存指令碼檔案runlog.sh mkdir data vim data runlog.sh 2.在指令碼檔案runlog.sh檔案裡新增如下 的含義是 在logs資料夾下,每天凌晨一點生成乙個昨天的日誌檔案...

程序後台執行和指定日誌檔案輸出

對於shell指令碼執行,沒有任何報錯,也沒有找到看到任何日誌的情況,運用這種執行日誌重定向輸出,可以判斷執行出錯位置 1 linux中的 符號 在linux中,當在前台執行某個作業時,終端被該作業佔據 而在後台執行作業時,它不會佔據終端。可以使用 命令把作業放到後台執行。實際上,這樣是將命令放入到...