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