logrotate 命令

logrotate是Linux系统一个用于管理日志文件的工具。它可以分割,压缩,删除和邮寄日志文件,每个日志文件都可被设置成每日,每周或每月滚动处理,也能在文件太大时立即处理。

logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志滚动由系统自动完成的。

logrotate默认配置文件:

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

logrotate.conf是主配置文件,logrotate.d目录下放置自定义配置文件,自定义配置可以覆盖主文件中的默认配置.

语法

logrotate [-?dfv][-s <状态文件>][--usage][配置文件]

选项

  • -d,--debug  详细显示指令执行过程,便于排错或了解程序执行的情况。
  • -f,--force  根据设置强制执行日志切割操作
  • -m,--mail=command 压缩日志后,发送日志到指定邮箱
  • -s<状态文件>或--state=<状态文件>  使用指定的状态文件。
  • -v 或--version  显示指令执行过程。
  • -usage  显示指令基本用法。
  • -?或--help  命令帮助。

配置文件说明

[oper@devfz.cn ~]$ cat /etc/logrotate.conf 
# see "man logrotate" for details
# 默认每一周执行一次日志滚动工作
weekly

# 最多保留多少个日志文件,默认是4个
rotate 4

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

# 切割后日志文件以当前日期格式结尾,如:access.log-20240102,如不注释掉则以数字结尾
dateext

# 日志是否压缩转储,以gzip压缩
#compress

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

# 针对特定日志文件的单独设置
/var/log/wtmp {
    monthly #按月处理
    create 0664 root utmp
	minsize 1M #文件大小超过1M后才切割
    rotate 1
}

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

#其他配置项
#mail email@xxx    转储日志通过邮件发送到该地址
#daily             转储周期按天
#olddir directory  转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统



实例

指定记录文件

# logrotate /root/log.config