ubuntu系统如何回收利用日志文件
导读:Ubuntu 日志文件的回收与自动管理 一、先评估日志占用 查看整体磁盘与日志目录占用: 整体空间:df -h 日志目录:sudo du -sh /var/log systemd 日志占用:journalctl --disk-usage...
Ubuntu 日志文件的回收与自动管理
一、先评估日志占用
- 查看整体磁盘与日志目录占用:
- 整体空间:
df -h - 日志目录:
sudo du -sh /var/log - systemd 日志占用:
journalctl --disk-usage
- 整体空间:
- 快速定位大文件:
sudo du -h /var/log | sort -rh | head -10 - 预览近期日志,确认无正在排查的关键信息:
journalctl -n 100或journalctl -r。
二、安全清理 systemd 日志(journald)
- 按时间保留(推荐):保留最近一段时间,删除更早日志
- 示例:
sudo journalctl --vacuum-time=2weeks(可用单位:1week/7days/24h/1month)
- 示例:
- 按大小保留:限制日志总体积,超出自动删除最旧
- 示例:
sudo journalctl --vacuum-size=500M
- 示例:
- 执行前可先轮转一次,减少正在写入文件的影响:
sudo journalctl --rotate - 清理后核验:
journalctl --disk-usage与du -sh /var/log/journal - 建议避免直接删除
/var/log/journal目录或正在写入的主日志文件,优先使用journalctl子命令完成回收。
三、回收传统文本日志与轮转管理(/var/log/*.log)
- 清空正在写入的日志内容(保留文件与 inode,业务不中断):
- 示例:
sudo truncate -s 0 /var/log/syslog或sudo > /var/log/syslog
- 示例:
- 删除已轮转的旧归档(如 .gz、.1、.old 等),谨慎避免误删当前正在写入的文件
- 示例:
sudo find /var/log -name "*.gz" -mtime +7 -delete
- 示例:
- 使用 logrotate 做长期“回收-压缩-删除”自动化(Ubuntu 默认已安装)
- 全局配置:
/etc/logrotate.conf - 服务配置:
/etc/logrotate.d/rsyslog(常见示例)/var/log/syslog { daily rotate 7 compress delaycompress missingok notifempty create 0640 root adm } /var/log/auth.log { daily rotate 7 compress delaycompress missingok notifempty create 0640 root adm } - 强制执行一次以验证:
sudo logrotate -f /etc/logrotate.conf
- 全局配置:
- 提示:文本日志通常由 rsyslog 写入,确保服务运行:
sudo systemctl status rsyslog。
四、设置长期自动回收策略
- 配置 systemd-journald 的持久化与保留策略
- 创建目录:
sudo mkdir -p /etc/systemd/journald.conf.d - 新建配置:
sudo nano /etc/systemd/journald.conf.d/99-custom.conf[Journal] SystemMaxUse=500M MaxRetentionSec=2week MaxFileSize=100M - 使配置生效:
sudo systemctl restart systemd-journald
- 创建目录:
- 说明:上述策略会在达到大小或时间阈值时自动删除最旧日志,避免再次膨胀。
五、注意事项与应急
- 清理前备份关键时段日志(导出后再清理):
- 示例:
journalctl --since "2025-12-01" --until "2025-12-02" > ~/backup/journal_2025-12-01.log
- 示例:
- 不要直接
rm或> /var/log/syslog后立即删除同文件,可能导致日志写入异常;如需替换,先清空内容并确保 rsyslog 正常运行。 - 清理
/tmp等临时目录前确认无进程占用:sudo rm -rf /tmp/* - 若磁盘已接近满,优先执行:
sudo journalctl --rotate & & sudo journalctl --vacuum-size=200M,再处理文本日志与缓存。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu系统如何回收利用日志文件
本文地址: https://pptw.com/jishu/775151.html
