logrotate的簡介php
logrotate 程序是一個日誌文件管理工具。用來把舊的日誌文件刪除,並建立新的日誌文件,咱們把它叫作「轉儲」。咱們能夠根據日誌文件的大小,也能夠根據其天數來轉儲,這個過程通常經過 cron 程序來執行。node
logrotate 程序還能夠用於壓縮日誌文件,以及發送日誌到指定的E-mail 。nginx
logrotate 的配置文件是 /etc/logrotate.conf。主要參數以下表:bash
參數 功能ide
compress 經過gzip 壓縮轉儲之後的日誌php-fpm
nocompress 不須要壓縮時,用這個參數工具
copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷post
nocopytruncate 備份日誌文件可是不截斷spa
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).
2、logrotate安裝
yum -y install logrotate
3、自定義配置:(按需求定製)
[root@gy01 ~]# cd /u1/script/logsplit/
[root@gy01 logsplit]# cat nginx
/u1/logs/ng8080/*.log {
sharedscripts
rotate 8
daily
postrotate
/usr/bin/killall-HUP nginx 2> /dev/null || true
endscript
}
[root@gy01 logsplit]#cat lbnginx
/u1/logs/lbnginx/*.log {
sharedscripts
rotate7
daily
postrotate
/usr/bin/killall-HUP lbnginx 2> /dev/null || true
endscript
}
[root@gy01 logsplit]#cat php-fpm
/u1/logs/php/*.log {
sharedscripts
rotate7
daily
postrotate
/usr/bin/killall-12 php-fpm 2> /dev/null || true
endscript
}
[root@gy01 logsplit]#cat rsync
/u1/script/rsync/logs/*.log {
sharedscripts
rotate7
daily
postrotate
endscript
}
4、定時腳本
[root@gy01 logsplit]# crontab -e
#split lbnginx log
0 0 * * * (bash /u1/script/logsp.sh)
[root@gy01 logsplit]#cat /u1/script/logsp.sh
#!/bin/bash
. ~/.bashrc
/usr/sbin/logrotate -f /u1/script/logsplit/lbnginx
/usr/sbin/logrotate -f/u1/script/logsplit/nginx
/usr/sbin/logrotate -f/u1/script/logsplit/php-fpm