Linux下,nginx如何切割訪問日誌?

2021-06-01 06:05:37 字數 1869 閱讀 1853

在linux下,我們可以通過crontab,定時把access.log移動到備份目錄,同時,發訊號usr1給nginx主程序,讓其重新生成個日誌檔案。

在進行編寫指令碼之前,先進行以下假設:

日誌檔案是:/usr/local/nginx/logs/access.log

nginx主程序id儲存在檔案:/usr/local/nginx/logs/nginx.pid

切割後備份檔案目錄:/usr/local/nginx/logs/bak/

切割詳細步驟,請參閱下面操作:

1、建立檔案cut_access_log.sh: 

vim /.bin/cut_access_log.sh

2、輸入檔案cut_access_log.sh內容

#! /bin/bash

org_path="/usr/local/nginx/logs/"

dest_path="/usr/local/nginx/logs/bak/"

if [ ! -d "$dest_path" ]; then

mkdir "$dest_path"

fi

mv $access.log $access$(date +%y%m%d).log

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

3、儲存cut_access_log.sh之後,賦可執行許可權

chmod +x /.bin/cut_access_log.sh

4、編寫crontab檔案:

vim /.cron

5、輸入crontab檔案內容,並保持

59 23 * * * /bin/bash /.bin/cut_access_log.sh

6、新增到crontab中

crontab /.cron

通過以上六步,如果具有足夠的許可權話,訪問日誌會在每天23:59分,進行切割。

Linux下nginx日誌自動切割

他山之石,可以攻玉 需求與思路 查詢nginx日誌時發現main access.log已達到幾十個g,即便是error.log也接近1g,才意識到一直忽視了日誌檔案的管理,這非常不利於日誌的查詢和問題的追蹤,而人為切割有太多不確定性,所以實現nginx日誌的自動切割是很有必要的。我是通過shell指...

liunx下nginx日誌切割

bin bash 此指令碼用於自動分割nginx的日誌,包括access.log和error.log 每天00 00執行此指令碼 將前一天的access.log重新命名為access x xx xx.log格式,並重新開啟日誌檔案 nginx日誌檔案所在目錄 log path usr local n...

Linux下nginx日誌檔案自動切割刪除

1 編寫shell指令碼qiege.sh bin bash logs path data wwwlogs www.codelovers.cn yesterday date d yesterday y m d 按天切割日誌 mv www.codelovers.cn.log www.codelovers...