Nginx日志切割
Nginx日志切割
access 和 error)默認都是存放在一個文件夾內(nèi),當時間長了,日志文件體積越來越大,不易管理,可以自己寫個腳本來處理,其實就是定時定點去把日志移動下位置。#!/bin/sh# 日志源目錄sourceDir='/var/log/nginx/jeremy.com/last'# 日志備份目錄backDir='/var/log/nginx/jeremy.com/back'echo "split-logs start: $(date +%Y-%m-%d %H:%M:%S)"ls $sourceDir | while read filenamedomkdir -p "$backDir/$(date +%Y%m%d)/"mv "$sourceDir/$filename" "$backDir/$(date +%Y%m%d)/"echo "$sourceDir/$filename => $backDir/$(date +%Y%m%d)/$filename"done# 刷新nginxkill -USR1 `cat /var/run/nginx.pid`echo "split-logs end: $(date +%Y-%m-%d %H:%M:%S)"echo "----------------"
有幾個注意的:
1.日志源目錄 - 該目錄存放日志文件,如 access.log,error.log,當然如果你的站點比較多,可以用域名來命名,比如: jeremy.com.access.log,jeremy.com.error.log 。2.日志備份目錄 - 會以Ymd命名文件夾名存放在該目錄。3.刷新 Nginx - 由于是直接移動日志文件,移動后需要刷新下 Nginx 使其再生成日志文件,當然也可以 nginx -s reload ,但 reload 要比 kill 的慢,而 kill -USR1 是無損的。4.定時任務(wù) - 需要使用 root 帳戶下使用 crontab -e 插入一條定時任務(wù),定時 23:55 開始分割,后面是把錯誤和信息輸出到指定文件,方便調(diào)試,如:
55 23 * * * sh /你的目錄/split-log >> /var/log/nginx/crontab.log 2>&1歡迎關(guān)注我的公眾號“須彌零一”,更多技術(shù)文章第一時間推送。
評論
圖片
表情
