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日志的用途以及所及日志占用空间的方法。

相关推荐
HalvmånEver3 小时前
Linux:命名管道实现IPC(进程间通信七)
linux·运维·服务器·ipc·命名管道·管道pipe
正在学习前端的---小方同学8 小时前
Harbor部署教程
linux·运维
牛奔9 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
翼龙云_cloud9 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
DX_水位流量监测11 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
电商API&Tina11 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
Mr_Xuhhh11 小时前
博客标题:深入理解Shell:从进程控制到自主实现一个微型Shell
linux·运维·服务器
f***241114 小时前
高效自动化管理临时文件的技术方案
运维·自动化
m0_7381207215 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
obboda15 小时前
磁盘管理(MBR、LVM)
运维·5g