logrotate
是 Linux 系统中用于自动管理和轮转日志文件的工具,主要解决以下问题:
- 日志膨胀:随着时间增长,日志文件会占用大量磁盘空间。
- 文件过大:超大文件会影响性能,且不便于查看历史内容。
- 归档需求:需要定期备份、压缩或删除旧日志。
核心功能
- 自动轮转:
按时间(天 / 周 / 月)或大小自动切割日志文件,例如将app.log
转为app.log.1
、app.log.2
等。 - 压缩归档:
轮转后的旧日志可自动压缩(如.gz
),节省存储空间。 - 过期删除:
自动删除指定天数前的日志,避免无限累积。 - 创建新文件:
轮转后自动创建新的空日志文件,不影响服务写入。
工作原理
logrotate
通过 配置文件 和 定时任务 实现自动化:
- 配置文件:定义日志文件路径、轮转规则(如每天一次)、保留数量等。
- 定时任务:通常由
cron
每天触发一次,执行logrotate
命令。
开始部署
- 安装nano
yum install nano -y
- #创建配置文件
mkdir -p /root/logs
sudo nano /root/logs/gobackup
- #编辑配置文件内容
#/root/.gobackup/gobackup.log是你日志文件的路径
/root/.gobackup/gobackup.log {
# 达到 10MB 时分割
size 10M
# 每天检查一次(即使未达大小)
daily
# 保留 7 个历史日志
rotate 7
# 压缩旧日志
compress
# 日志不存在不报错
missingok
# 空日志不分割
notifempty
# 新日志权限:600(仅 root 可读写)
create 600 root root
}
然后Ctrl+X 保存
-
#强制执行检查配置是否有问题
sudo logrotate -f /root/logs/gobackup
执行后可以看到日志文件清空并压缩了
评论区