logrotate日志使用
约 495 字大约 2 分钟
Linux
2025-03-20
Logrotate简介
logrotate是Linux系统中的日志管理工具,可以通过预设规则自动对日志进行执行,避免单个日志文件过大导致磁盘空间不足或影响读写性能。
- 压缩日志:减少历史日志占用
- 切割日志:按时间、大小切割日志
- 清理日志:保留固定数量日志
一般默认集成,如果没有,可以按照如下命令安装:
# 对于Debian、Ubuntu、Raspbian等使用apt的系统
sudo apt-get install logrotate
# 对于CentOS 7、Fedora等使用yum的系统
sudo yum install logrotate
# 对于CentOS 8、Fedora等使用dnf的系统
sudo dnf install logrotate
# 对于Arch Linux、Manjaro等使用pacman的系统
sudo pacman -S logrotate
# 对于Alpine Linux使用apk的系统
sudo apk add logrotate
配置文件位置
定义全局配置:/etc/logrotate.conf 存放自己服务的日志配置文件:/etc/logrotate.d/
核心配置
/var/log/*.log {
daily # 按天切割
missingok # 日志不存在时不报错
rotate 60 # 保留60份旧日志
compress # 启用压缩(默认gzip)
delaycompress # 延迟压缩最新一份日志
notifempty # 空日志不轮换
sharedscripts # 所有日志处理完再执行脚本
postrotate # 切割后执行的命令
xxx
endscript
dateext # 使用日期作为后缀格式
dateformat -%Y%m%d # 自定义日期格式(示例:.log-20231001)
}
- 切割周期:daily、weekly、monthly 或 size(如 size 100M)
- 保留数量:rotate X 指定保留旧日志的数量。
- 压缩控制:compress 立即压缩;delaycompress 延迟压缩上一个轮换文件。
- 脚本钩子:prerotate/postrotate 在切割前后执行命令(如重启服务)
日志使用
/etc/logrotate.d
可以在当前文件夹里面新建日志配置
vim xxx(文件名)
需要绑定日志地址
/ntdc/api/mylog.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
sudo logrotate -vf /etc/logrotate.d/xxx(文件名)
启动成功后,配置如下

参考文档
贡献者
flycodeu
版权所有
版权归属:flycodeu