journalctl是Systemd的日志管理工具,可高效管理systemd-journald生成的日志(默认日志存储位置)。
journalctl --disk-usage
此命令会显示日志占用的总空间(如“1.6G”),帮助判断是否需要清理。sudo journalctl --vacuum-time=2weeks
其他时间单位:days(天)、hours(小时)、months(月),如--vacuum-time=3d(清理3天前的日志)。sudo journalctl --vacuum-size=100M
可替换为G(GB)、K(KB),如--vacuum-size=1G(限制为1GB)。sudo journalctl --vacuum-by-service=ssh.service
/var/log是Ubuntu系统日志的主要存储目录,包含syslog(系统日志)、auth.log(认证日志)、kern.log(内核日志)等文件。
ls -l /var/log
truncate命令将文件内容清空(保留文件本身,避免服务因文件不存在报错),例如清空syslog:sudo truncate -s 0 /var/log/syslog
类似地,可清空其他日志文件:sudo truncate -s 0 /var/log/auth.log
sudo truncate -s 0 /var/log/kern.log
sudo truncate -s 0 /var/log/dmesg
sudo rm /var/log/syslog
sudo rm /var/log/auth.log
注意:删除系统关键日志(如syslog、auth.log)可能导致无法排查故障,建议优先使用truncate命令。logrotate是Ubuntu自带的日志轮转工具,可自动压缩、备份和删除旧日志,避免手动操作。
rsyslog的日志轮转配置(覆盖/var/log/syslog、/var/log/auth.log等),使用nano编辑器:sudo nano /etc/logrotate.d/rsyslog
/var/log/syslog {
daily # 每天轮转一次
rotate 7 # 保留最近7个日志文件
compress # 压缩旧日志(如syslog.1.gz)
delaycompress # 延迟压缩(不压缩最新的旧日志)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
create 640 root adm # 创建新日志文件时设置权限和所有者
}
sudo logrotate -f /etc/logrotate.d/rsyslog
.gz格式保存(如syslog.1.gz),可通过以下命令查看:ls -l /var/log/syslog*
sudo执行命令。/var/log下的日志文件前,确认日志用途(如syslog记录系统事件,auth.log记录登录信息),避免影响故障排查。logrotate,实现日志自动管理,减少手动操作频率。通过以上方法,可有效清理Ubuntu系统日志,释放磁盘空间。