debian使用 Logrotate 来切割日志

本文介绍如何在Debian系统中使用Logrotate进行日志文件的管理和周期性转储。详细解析了Logrotate的配置文件及选项,包括日志转储周期、备份数量、文件创建、压缩设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
logrotate 是一个 Linux/Unix 系统上的日志切割工具,通常会作为一个计划任务在系统上定期运行。在大多数 Linux 发行版中,logrotate 的计划任务是通过 cron 服务来实现的。 cron 是一个 Linux 系统上的定时任务服务,可以在指定的时间周期性地运行指定的命令。logrotate 的计划任务通常会在每天的凌晨运行,以便在系统空闲时对日志文件进行切割。 在 Ubuntu 和 DebianDebian 系统中,logrotate 的计划任务配置文件位于 /etc/cron.daily/logrotate,这个文件会在每天的凌晨被自动执行。在 Red Hat、CentOS 等系统中,logrotate 的计划任务配置文件位于 /etc/cron.daily/logrotate.cron,这个文件也会在每天的凌晨被自动执行。 logrotate 的计划任务会自动读取配置文件中指定的日志文件,并按照配置文件中指定的规则对日志文件进行切割和压缩。如果需要手动运行 logrotate,可以使用以下命令: ``` logrotate -f /etc/logrotate.conf ``` 其中,-f 参数用于强制运行 logrotate,即使没有达到轮换周期也会强制进行日志切割。/etc/logrotate.conf 是 logrotate 的配置文件路径,可以根据实际情况替换为其他配置文件路径。 除了通过计划任务定期运行 logrotate,也可以手动运行 logrotate 进行日志切割,例如: ``` logrotate /etc/logrotate.d/nginx ``` 这个命令会对 /etc/logrotate.d/nginx 配置文件中指定的日志文件进行切割和压缩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值