nginx的日誌檔案沒有rotate功能。一段時間過後,日誌將越發臃腫,乙個accesslog很快就突破2.5g,因此有必要通過指令碼實現按天切割日誌。
1、將日誌檔案備份到/usr/local/nginx/logs/historylog目錄下,備份的檔名稱是access_yyyymmdd.log和error_yyyymmdd.log。
1.建立nginx_logs.s**件,並授予執行許可權。
chmod +x nginx_logs.sh
2.備份指令碼
#!/bin/bash
# this script run at 00:00
# the nginx logs path
logs_path="/usr/local/nginx/logs/historylog/"
logpath="/usr/local/nginx/logs/"
#建立備份目錄 如2020/03
mkdir -p $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/
#將日誌移動到上面的目錄中
mv $access.log $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%y%m%d").log
mv $error.log $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%y%m%d").log
#主要用到nginx的-usr1訊號,usr1 : reopen the log files 向nginx主程序傳送訊號以重新開啟日誌
kill -usr1 `cat $nginx.pid`
3.建立日誌備份的目錄,切換到/usr/local/nginx/logs下
mkdir historylog
2、通過crontab命令設定,秒 分 時 日 月 周1、設定定時任務 "crontab -e"
#將於每天凌晨0點0分將nginx日誌重新命名為昨天的日期格式,並重新生成今天的新日誌
2.先手動執行nginx_logs.sh
按天切割nginx訪問日誌
1.新建切割日誌指令碼vi usr local nginx cut nginxlog.sh bin bash 日誌檔案存放目錄 logs path usr local nginx logs pid檔案 pid path usr local nginx nginx.pid 重新命名日誌檔案 mv ng...
nginx實現日誌按天切割
nginx的日誌檔案沒有rotate功能。一段時間過後,日誌將越發臃腫,乙個accesslog很快就突破1g,因此有必要通過指令碼實現按天切割日誌。1 重新命名日誌檔案,如更改為access yyyymmdd.log,需注意的是nginx通過檔案描述符定位日誌檔案,因此在重新命名之後還是能往該檔案內...
Linux 下nginx 日誌按天分隔處理
nginx 的日誌有2個檔案,分別為訪問日誌 access.log 和錯誤日誌 error.log 訪問日誌會隨著訪問量的增加極速的變大,而且在一些雲服務的負載均衡下,後台內網也會不停的有訪問記錄,例如阿里雲 不知道在阿里雲後台有沒有設定的地方,沒去研究 而當訪問日誌太大,就會導致伺服器效能降低。思...