Ubuntu 日志文件的回收与自动管理
一、先评估日志占用
df -hsudo du -sh /var/logjournalctl --disk-usagesudo du -h /var/log | sort -rh | head -10journalctl -n 100 或 journalctl -r。二、安全清理 systemd 日志(journald)
sudo journalctl --vacuum-time=2weeks(可用单位:1week/7days/24h/1month)sudo journalctl --vacuum-size=500Msudo journalctl --rotatejournalctl --disk-usage 与 du -sh /var/log/journal/var/log/journal 目录或正在写入的主日志文件,优先使用 journalctl 子命令完成回收。三、回收传统文本日志与轮转管理(/var/log/*.log)
sudo truncate -s 0 /var/log/syslog 或 sudo > /var/log/syslogsudo find /var/log -name "*.gz" -mtime +7 -delete/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.confsudo systemctl status rsyslog。四、设置长期自动回收策略
sudo mkdir -p /etc/systemd/journald.conf.dsudo 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.logrm 或 > /var/log/syslog 后立即删除同文件,可能导致日志写入异常;如需替换,先清空内容并确保 rsyslog 正常运行。/tmp 等临时目录前确认无进程占用:sudo rm -rf /tmp/*sudo journalctl --rotate && sudo journalctl --vacuum-size=200M,再处理文本日志与缓存。