使用logrotate工具(系统级自动管理)
logrotate是Debian系统默认的日志轮转工具,可自动完成日志的轮转、压缩、删除,避免手动操作的风险。
/etc/logrotate.conf(全局配置),设置基础参数如daily(每日轮转)、rotate 7(保留7份)、compress(压缩旧日志)、missingok(日志丢失不报错)、notifempty(空日志不轮转)、create 640 root adm(新日志权限与所有者)。/etc/logrotate.d/目录下创建或编辑服务配置文件(如apache2、syslog),指定服务日志路径与策略。例如,Apache日志配置:/var/log/apache2/*.log { daily rotate 7 compress missingok notifempty create 640 root adm } sudo logrotate /etc/logrotate.conf(强制轮转);测试配置是否正确,可加-f参数(强制模式)。手动清理特定日志文件(临时应急)
若需快速释放空间,可手动清理指定日志,但需谨慎避免误删系统关键日志。
truncate命令(保留inode,避免权限问题),例如清空syslog:sudo truncate -s 0 /var/log/syslog find命令查找并删除指定天数前的日志(如30天前的.log文件):sudo find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \; 使用journalctl管理systemd日志(系统日志专用)
若系统使用systemd(Debian默认),可通过journalctl命令管理二进制系统日志。
journalctl --disk-usage,了解当前日志占用的空间。sudo journalctl --vacuum-time=2weeks。sudo journalctl --vacuum-size=500M。/etc/systemd/journald.conf,设置SystemMaxUse=16M(最大16MB)或SystemKeepFree=100M(保留100MB空闲),修改后重启服务:sudo systemctl daemon-reload sudo systemctl restart systemd-journald 优化rsyslog配置(控制日志生成)
若使用rsyslog(Debian默认日志服务),可通过配置限制日志文件大小与保留数量,从源头减少日志增长。
/etc/rsyslog.conf或/etc/rsyslog.d/50-default.conf,添加以下参数:$SystemLogFileSize 10M # 单个日志文件最大10MB $SystemLogRotateInterval 7d # 每7天轮转一次 $SystemLogRotateBackupCount 7 # 保留7份旧日志 sudo systemctl restart rsyslog