rainysia的专栏

Let it go

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
阅读更多
文章标签: debian logrotate
个人分类: debian
所属专栏: Debian系统维护使用.
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭