Debian 11之解决daemon.log与syslog文件占用空间过大问题
目录
- 一、syslog , daemon.log日志的用途
- 1. syslog 是系统日志的聚合文件,记录内核、系统服务及关键服务的运行状态和事件,包括但不限于:
- 2. daemon.log是守护进程专用日志,专门记录系统中守护进程(Daemon)的运行细节,包括:
- 二、减少日志大小的几种方法
- 1. 配置logrotate自动轮转日志
- 2. 手动清理日志文件
- 3. 设置定时任务定期清理
- 总结
一、syslog , daemon.log日志的用途
1. syslog 是系统日志的聚合文件,记录内核、系统服务及关键服务的运行状态和事件,包括但不限于:
系统启动/关闭流程中的关键节点信息;
硬件设备(如磁盘、USB)的连接与异常;
用户认证事件(如SSH登录失败记录);
系统守护进程(如systemd)的核心操作日志;
其他未指定独立日志文件的应用程序输出。
2. daemon.log是守护进程专用日志,专门记录系统中守护进程(Daemon)的运行细节,包括:
守护进程的启动、停止和重启状态;
进程间通信(如通过D-Bus的消息交互);
守护进程运行中的错误或警告(如配置加载失败);
周期性任务的执行反馈(如定时脚本的输出)。
二、减少日志大小的几种方法
对日志没有正确配置管理的话,会导致日志大小疯狂增长,针对/var/log目录下daemon.log和syslog日志文件过大的问题,可通过以下方法综合处理:
1. 配置logrotate自动轮转日志
修改logrotate配置文件,编辑 /etc/logrotate.d/rsyslog 或新增自定义配置文件,设置:
/var/log/syslog
/var/log/daemon.log {daily # 每日轮转maxsize 200M # 文件超过200M立即触发轮转 rotate 7 # 保留最近7份历史文件compress # 启用压缩旧日志 delaycompress # 延迟压缩(保留前一个未压缩文件)missingok # 文件不存在时不报错notifempty # 空文件不轮转 postrotatesystemctl restart rsyslog # 轮转后重启日志服务endscript
}
2. 手动清理日志文件
- 快速清空当前日志
# 使用 truncate 命令清空文件但不删除文件句柄:
sudo truncate -s 0 /var/log/syslog /var/log/daemon.log # 立即释放磁盘空间
- 删除历史归档日志
sudo find /var/log -name "syslog.*" -mtime +30 -exec rm {} \; # 删除30天前的日志
3. 设置定时任务定期清理
通过Systemd定时器,执行周期清理任务。
创建服务文件 /etc/systemd/system/clean-log.service:
[Unit]
Description=Clean oversized logs[Service]
ExecStart=/bin/sh -c 'find /var/log -type f $ -name "syslog" -o -name "daemon.log" $ -size +1G -exec truncate -s 0 {} \;'
创建定时器文件 /etc/systemd/system/clean-log.timer:
[Unit]
Description=Daily log cleanup[Timer]
OnCalendar=daily
Persistent=true[Install]
WantedBy=timers.target
启用定时器:
systemctl enable --now clean-log.timer
通过以上定义,可明确二者在日志记录范围和应用场景上的差异。如需进一步限制其大小,可通过调整日志级别或优化轮转策略实现。
总结
本文介绍syslog , daemon.log日志的用途以及所及日志占用空间的方法。