lograotate 配置經常使用配置


lograotate 配置說明

Linux系統默認安裝logrotate工具,它默認的配置文件在:node

/etc/logrotate.conf
/etc/logrotate.d/

logrotate是基於CRON來運行的,其腳本是「/etc/cron.daily/logrotatenginx

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

全局與默認配置tomcat

/etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

nginx php-fpm tomcat 配置

nginx配置php-fpm

#cat  /etc/logrotate.d/log-nginx
/data/wwwlogs/*.log {
  daily
  rotate 5
  missingok
  dateext
  compress
  notifempty
  sharedscripts
  postrotate
    [ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
  endscript
}

php-fpm配置工具

cat /etc/logrotate.d/log-php 
/data/logs/php/*.log {
  daily
  rotate 5
  missingok
  dateext
  compress
  notifempty
  sharedscripts
  postrotate
    [ -e /usr/local/php/var/run/php-fpm.pid ] && kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
  endscript
}

tomcat配置post

cat /etc/logrotate.d/tomcat

/usr/local/tomcat/logs/catalina.out {
daily
rotate 5
missingok
dateext
compress
notifempty
copytruncate
}

測試nginx配置測試

logrotate -f /etc/logrotate.d/nginx

各類參數說明

compress                                   經過gzip 壓縮轉儲之後的日誌
nocompress                                不作gzip壓縮處理
copytruncate                              用於還在打開中的日誌文件,把當前日誌備份並截斷;是先拷貝再清空的方式,拷貝和清空之間有一個時間差,可能會丟失部分日誌數據。
nocopytruncate                           備份日誌文件不過不截斷
create mode owner group             輪轉時指定建立新文件的屬性,如create 0777 nobody nobody
nocreate                                    不創建新的日誌文件
delaycompress                           和compress 一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress                        覆蓋 delaycompress 選項,轉儲同時壓縮。
missingok                                 若是日誌丟失,不報錯繼續滾動下一個日誌
errors address                           專儲時的錯誤信息發送到指定的Email 地址
ifempty                                    即便日誌文件爲空文件也作輪轉,這個是logrotate的缺省選項。
notifempty                               當日志文件爲空時,不進行輪轉
mail address                             把轉儲的日誌文件發送到指定的E-mail 地址
nomail                                     轉儲時不發送日誌文件
olddir directory                         轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir                                   轉儲後的日誌文件和當前日誌文件放在同一個目錄下
sharedscripts                           運行postrotate腳本,做用是在全部日誌都輪轉後統一執行一次腳本。若是沒有配置這個,那麼每一個日誌輪轉後都會執行一次腳本
prerotate                                 在logrotate轉儲以前須要執行的指令,例如修改文件的屬性等動做;必須獨立成行
postrotate                               在logrotate轉儲以後須要執行的指令,例如從新啓動 (kill -HUP) 某個服務!必須獨立成行
daily                                       指定轉儲週期爲天天
weekly                                    指定轉儲週期爲每週
monthly                                  指定轉儲週期爲每個月
rotate count                            指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份
dateext                                  使用當期日期做爲命名格式
dateformat .%s                       配合dateext使用,緊跟在下一行出現,定義文件切割後的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數
size(或minsize) log-size            當日志文件到達指定的大小時才轉儲,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
當日志文件 >= log-size 的時候就轉儲。 如下爲合法格式:(其餘格式的單位大小寫沒有試過)
size = 5 或 size 5 (>= 5 個字節就轉儲)
size = 100k 或 size 100k
size = 100M 或 size 100M
相關文章
相關標籤/搜索