4.40-Nginx日誌切割

爲何要作日誌切割?

/data/logs/ 裏面有不少訪問日誌。 
若是日誌愈來愈大,可能有一天會把整個磁盤寫滿。你能夠想象一下一個日誌有100G

你如何查看這個日誌?

cat  less   tail  vi

系統裏有一個日誌切割的服務

logrotate  工具
配置文件: /etc/logrotate.conf
子配置文件:/etc/logrotate.d/*

logrotate 主要參數以下表:

配置參數    功能說明
compress   經過gzip 壓縮轉儲之後的日誌
nocompress  不須要壓縮時,用這個參數
copytruncate  用於還在打開中的日誌文件,把當前日誌備份並截斷
nocopytruncate  備份日誌文件可是不截斷
create mode owner group   轉儲文件,使用指定的文件模式建立新的日誌文件
nocreate   不創建新的日誌文件
delaycompress 和 compress   一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress    delaycompress 選項,轉儲同時壓縮。
errors address   專儲時的錯誤信息發送到指定的Email 地址
ifempty   即便是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty   若是是空文件的話,不轉儲
mail address   把轉儲的日誌文件發送到指定的E-mail 地址
nomail   轉儲時不發送日誌文件
olddir directory   轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir   轉儲後的日誌文件和當前日誌文件放在同一個目錄下
prerotate/endscript   在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript   在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
daily   指定轉儲週期爲天天
weekly   指定轉儲週期爲每週
monthly   指定轉儲週期爲每個月
rotate count   指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate   不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ 
size  size當日志文件到達指定的大小時才轉儲,Size 能夠指定 bytes (缺省)以及KB (sizek)或者MB (sizem).

Nginx的日誌切割配置文件:

/etc/logrotate.d/nginx
內容: /var/log/nginx/.log /var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

測試執行:

logrotate -vf /etc/logrotate.d/nginx
相關文章
相關標籤/搜索