要在使用 rsyslog 记录日志并按日期保存的情况下定期压缩旧日志,可以使用 logrotate 工具来自动完成日志的压缩、轮转和删除。logrotate 允许你为日志文件定义轮转策略,并可以按日期自动压缩旧日志。以下是配置 logrotate 压缩旧日志的步骤:
1. 安装 logrotate
如果你的系统尚未安装 logrotate,你可以通过以下命令安装它:
sudo apt-get install logrotate
2. 配置 logrotate
在 /etc/logrotate.d/ 目录下为你的日志文件创建一个单独的配置文件。例如,如果你希望压缩 /var/log/myapp/ 中的日志文件,可以创建一个配置文件
/etc/logrotate.d/myapp:
sudo vim /etc/logrotate.d/myapp
在配置文件中定义压缩和轮转策略,例如:
/var/log/myapp/*.log {
daily # 每日轮转
rotate 7 # 保存最近7天的日志
compress # 轮转时压缩旧日志
delaycompress # 延迟压缩,保留最新的未压缩日志
missingok # 如果日志文件丢失,不报错
notifempty # 如果日志文件为空,不轮转
dateext # 使用日期作为扩展名
dateformat -%Y-%m-%d # 指定日期格式
postrotate
/usr/lib/rsyslog/rsyslog-rotate # 在日志轮转后重启 rsyslog
endscript
}
3. 测试配置
保存并退出后,你可以手动测试 logrotate 配置是否正确:
sudo logrotate -d /etc/logrotate.d/myapp
这个命令会显示模拟执行的日志轮转操作,确保没有错误。
4. 手动执行轮转
如果你想立即执行日志轮转而不仅仅是测试,可以运行:
sudo logrotate /etc/logrotate.d/myapp
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...




