debain服务器 守护进程日志归档文件清理

debain服务器 守护进程日志归档文件清理

1. 日志是谁写的?

/var/log/daemon.log.1系统守护进程(Daemon) 的日志归档文件,由系统的日志服务(如 rsyslogsyslog-ng)生成和管理。

  • 核心来源:系统中后台运行的服务(如网络服务、硬件管理服务、进程管理服务等,非用户直接启动的程序)的运行日志。
  • .1 后缀:表示这是 归档日志(由日志服务按规则 “轮转” 生成的旧日志),原始实时日志是 /var/log/daemon.log

2. 如何自动清理?

无需 “禁止日志生成”(日志对排查问题至关重要),正确做法是通过 日志轮转工具(logrotate) 自动压缩、删除旧日志,配置步骤如下:

步骤 1:找到 logrotate 配置文件

daemon.log 的轮转规则通常在以下文件中(二选一即可):

  • 系统默认配置:/etc/logrotate.d/rsyslog(若用 rsyslog 服务)
  • 自定义配置:可在 /etc/logrotate.d/ 下新建文件(如 daemon-log

步骤 2:修改 / 添加轮转规则

编辑配置文件(需 root 权限,如 sudo vim /etc/logrotate.d/rsyslog),找到 daemon.log 相关段落,按需求调整参数,示例配置如下:

1
2
3
4
5
6
7
8
9
/var/log/daemon.log {
daily # 轮转频率:daily(每天)、weekly(每周)、monthly(每月)
rotate 7 # 保留7个归档日志(超过则自动删除最旧的)
compress # 归档后自动压缩(节省空间,生成 .gz 文件)
delaycompress# 延迟压缩(确保当前归档日志可临时查看,下次轮转再压缩)
missingok # 若日志文件不存在,忽略错误(避免报错)
notifempty # 若日志为空,不执行轮转
create 0640 syslog adm # 轮转后重建新日志的权限和所属用户组
}

步骤 3:生效配置并测试

  1. 手动触发轮转(验证配置是否生效):

    1
    sudo logrotate -f /etc/logrotate.d/rsyslog

    -f 表示强制执行)

  2. 后续无需干预:系统会按 cron 定时任务(默认每天)自动执行 logrotate,无需手动清理。

3.如何手动清理:

1
sudo truncate -s 0 /var/log/daemon.log.1

只是想清空其内容以释放磁盘空间,可以使用 truncate 命令或重定向的方式。

或者使用重定向的方式,输入 sudo > /var/log/daemon.log.1 ,也能达到清空文件内容的效果。