nginx日誌切割

2022-09-15 01:51:14 字數 2009 閱讀 9856

cat cut-nginx-log.sh

[root@ali-idn-pro-nginx-ps01 script]# cat /data/script/cut-nginx-log.sh

#!/bin/bash

logs_path=/data/log/nginx/yesterday=$(date +%y%m%d)

#按天切割日誌

mv $/access.log $/access-$.log

mv $/error.log $/error-$.log

#向nginx主程序傳送usr1訊號,重新開啟日誌檔案,否則會繼續往mv後的檔案寫資料的。原因在於:linux系統中,核心是根據檔案描述符來找檔案的。如果不這樣操作導致日誌切割失敗。

kill -usr1 `ps axu | grep "

nginx: master process

" | grep -v grep | awk ''`

#delete 15

day nginx log

find $ -type f -mtime +15 | xargs rm -f

exit

0

定時任務

#delete 15

day nginx log

0000 * * * /bin/bash /data/script/cut-nginx-log.sh

按小時切割nginx日誌

cat /data/cut_nginx_log.sh

#!/bin/bash

logs_path=/var/log/nginx/backup_path=/backup_nginx_logs/yesterday=$(date +%y%m%d%h)

#切割日誌

mv $/access.log $/access_$.log

mv $/error.log $/error_$.log

#向nginx主程序傳送usr1訊號,重新開啟日誌檔案,否則會繼續往mv後的檔案寫資料的。

kill -usr1 `ps axu | grep "

nginx: master process

" | grep -v grep | awk ''`

#壓縮日誌減少空開使用量

cd $backup_path

tar zcf access_$yesterday.tar.gz access_$yesterday.log

tar zcf error_$yesterday.tar.gz error_$yesterday.log

#刪除7天前的日誌和沒壓縮的日誌檔案

cd $

find $ -mtime +7 -name "

*.tar.gz

" | xargs rm -f

find $ -mtime +1 -name "

*.log

" | xargs rm -f

exit

0

定時任務:每個小時執行一次

00 */1 * * * bash /data/cut_nginx_log.sh

k8s部署nginx日誌切割

cat cut_k8s_nginx_log.sh

for pod in $(kubectl get pods -n service-a | grep gateway | awk '

'); do

kubectl exec -ti -n service-a $pod -- /bin/mv /var/log/nginx/access.log /var/log/nginx/access.$(date +%f -d -1day).log

kubectl exec -ti -n service-a $pod -- /usr/sbin/nginx -s reopen

done

配合定時任務定時切割

00 07 * * *  bash /data/scripts/cut_k8s_nginx_log.sh 

nginx日誌切割

web 訪問日誌 access log 記錄了所有外部客戶端對web伺服器的訪問行為,包含了客戶端ip,訪問日期,訪問的url資源,伺服器返回的http狀態碼等重要資訊。一條典型的web訪問日誌如下 規劃 1 要解決問題 2 nignx沒有自動分開檔案儲存日誌的機制。由於nginx它不會幫你自動分檔...

nginx 日誌切割

直接在nginx配置檔案中,配置日誌迴圈,而不需使用logrotate或配置cron任務。需要使用到 time iso8601 內嵌變數來獲取時間。time iso8601格式如下 2015 08 07t18 12 02 02 00。然後使用正規表示式來獲取所需時間的資料。使用下面的 塊 1 2 3...

Nginx日誌切割

編輯指令碼tianshl tianshl nginx vim nginx log division.sh指令碼內容 bin sh 昨天日期 yesterday date v 1d y m d 日誌目錄 log path usr local var log nginx sdk日誌路徑 sdk path...