Ubuntu 清理日志文件的实用方法
一、使用 journalctl 清理 systemd 日志
sudo journalctl --disk-usagesudo journalctl --vacuum-time=7dsudo journalctl --vacuum-time=1monthsudo journalctl --vacuum-size=500Msudo journalctl --vacuum-size=100Msudo journalctl --vacuum-size=0/var/log/ 下的文本日志。二、清理 /var/log 文本日志
sudo du -h /var/log | sort -hr | headsudo truncate -s 0 /var/log/syslogsudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;sudo find /var/log -type f -name "*.gz" -o -name "*.old" -deletesudo rm -rf /var/log/*,可能导致正在写入的日志损坏或应用异常。三、配置 logrotate 自动轮转与压缩
/etc/logrotate.d/rsyslog 或 /etc/logrotate.conf):/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四、清理 APT 缓存与临时文件(释放空间)
sudo apt-get autocleansudo apt-get cleansudo apt-get autoremovesudo rm -rf /tmp/*五、注意事项
truncate -s 0 或 journalctl --vacuum-* 等“清空/收缩”方式,避免粗暴删除正在写入的日志文件。journalctl --disk-usage 或 du -h /var/log 复核空间释放效果。