debian使用 Logrotate 來切割日誌

debian使用 Logrotate 來切割日誌

前言, 之前修改了mysql.cnf, 導致日誌轉儲每天會報錯並且增加一條mail數據. 於是修改了下logrotate來避免, 順便看了下man

1. install && configurate

絕大多數linux都默認安裝了logrotate,
配置文件分散了下, 和mysql, apache, nginx之類的程序一樣, 採用了主配置文件
/etc/logrotate.conf 以及 子配置文件/etc/logrotate.d/*.conf
同時, logrotate默認是放在了/etc/cron.daily/logrotate來讓cron每天執行

2. 配置解析

以/etc/logrotate.conf爲例, #爲註釋

# see "man logrotate" for details
# rotate log files weekly
weekly    #weekly爲每週處理,  可用daily, monthly,來指定轉儲週期爲每天,每月

# keep 4 weeks worth of backlogs
rotate 4    #指定日誌文件刪除前轉儲的次數, 0 沒有備份, 4指保留4個備份

# create new (empty) log files after rotating old ones
create    #轉儲文件, 使用指定的文件模式來創建新的日誌文件, 比如create 0640 mysql mysql 表明以mysql用戶和組來創建權限640的日誌文件.

# uncomment this if you want your log files compressed
#compress    #是否啓用gzip壓縮轉儲以後的日誌, 註釋後=nocompress, 默認是不壓縮
#delaycompress    #和compress一起使用, 轉儲的日誌文件到下一次轉儲才壓縮, 也就是如果按照每天轉儲日誌, 要第三天的日誌文件才壓縮. 這樣就方便前一天的日誌可以直接被tail, cat而不需要gzip解壓.

#compresscmd /bin/tar   #配合compress, 指定壓縮工具的執行路徑
#compressext .gz          #配合compress, 指定採用別的日誌轉儲壓縮方式的後綴, 比如要用bzip, tar.gz

#size 10k    #超過多少k後啓用一次轉儲, 也就是說如果設置的是每天轉儲, 如果一天有29k, 那麼會生成2個轉儲日誌. 並且按照最新的序號最小來命名.


#ifempty    #即使是空文件也轉儲, 默認值, 如果需要忽略空日誌文件, 用notifempty

#dateext    #增加日誌的時間戳, 默認是沒有添加的, 加上後在轉儲日誌上加"-YYYMMDD"格式的日期, 不配置則是一個".數字序號"
#dateformat    #配合上面使用, 來自定義日誌的後綴日期格式, 比如dateformat -%Y%m%d.%s


# packages drop log rotation information into this directory
include /etc/logrotate.d    #包含的子配置

# no packages own wtmp, or btmp -- we'll rotate them here
# 下面是一個wtmp的例子,
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

# 下面是一個btmp的例子
/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章