Debian 11之解决daemon.log与syslog文件占用空间过大问题

目录

  • [一、syslog , daemon.log日志的用途](#一、syslog , daemon.log日志的用途)
    • [1. syslog 是系统日志的聚合文件,记录内核、系统服务及关键服务的运行状态和事件,包括但不限于:](#1. syslog 是系统日志的聚合文件,记录内核、系统服务及关键服务的运行状态和事件,包括但不限于:)
    • [2. daemon.log是守护进程专用日志‌,专门记录系统中守护进程(Daemon)的运行细节,包括:](#2. daemon.log是守护进程专用日志‌,专门记录系统中守护进程(Daemon)的运行细节,包括:)
  • 二、减少日志大小的几种方法
    • [1. 配置logrotate自动轮转日志](#1. 配置logrotate自动轮转日志)
    • [2. 手动清理日志文件](#2. 手动清理日志文件)
    • [3. 设置定时任务定期清理](#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 或新增自定义配置文件,设置:

bash 复制代码
/var/log/syslog
/var/log/daemon.log {
    daily          # 每日轮转
    maxsize 200M   # 文件超过200M立即触发轮转 
    rotate 7       # 保留最近7份历史文件
    compress       # 启用压缩旧日志 
    delaycompress  # 延迟压缩(保留前一个未压缩文件)
    missingok      # 文件不存在时不报错
    notifempty     # 空文件不轮转 
    postrotate
        systemctl restart rsyslog  # 轮转后重启日志服务
    endscript
}

2. 手动清理日志文件

  • 快速清空当前日志‌
bash 复制代码
# 使用 truncate 命令清空文件但不删除文件句柄:
sudo truncate -s 0 /var/log/syslog /var/log/daemon.log  # 立即释放磁盘空间
  • 删除历史归档日志‌
bash 复制代码
sudo find /var/log -name "syslog.*" -mtime +30 -exec rm {} \;  # 删除30天前的日志

3. 设置定时任务定期清理

通过Systemd定时器‌,执行周期清理任务。

创建服务文件 /etc/systemd/system/clean-log.service:

bash 复制代码
[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:

bash 复制代码
[Unit]
Description=Daily log cleanup

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

启用定时器:

bash 复制代码
systemctl enable --now clean-log.timer 

通过以上定义,可明确二者在日志记录范围和应用场景上的差异。如需进一步限制其大小,可通过调整日志级别或优化轮转策略实现。

总结

本文介绍syslog , daemon.log日志的用途以及所及日志占用空间的方法。

相关推荐
大江东第一深情20 分钟前
Origin 2024 进行语言切换后仍然显示为英文
运维·前端
CSDN官方博客31 分钟前
CSDN社区镜像创作活动
大数据·运维·人工智能
石小千43 分钟前
Ubuntu24.04 安装Docker
运维·docker·容器
zhuzewennamoamtf1 小时前
Linux设备树理解和应用
linux·运维·服务器
雨大王5121 小时前
汽车厂内物流如何通过自动化实现降本增效?
运维·自动化
Qzkj6661 小时前
医疗和教育行业自动化、精准匹配、易掌握的数据分类分级最佳实践与案例
大数据·运维·自动化
我科绝伦(Huanhuan Zhou)1 小时前
Linux 环境下 SQL Server 自动收缩日志作业创建脚本(Shell 版)
linux·运维·数据库·sql server
徐徐图之!1 小时前
五、【阶段一运维基础 之 干货!!!】安装 Vmware 和 CentOS
linux·运维·centos
石小千1 小时前
OpenProject服务的备份与恢复
运维
scriptsboy1 小时前
Halo Docker 迁移方法
运维·docker·容器