在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...