温馨提示×

怎样压缩debian日志

小樊
47
2026-10-24 16:07:13
栏目: 智能运维

在 Debian 系统中,日志文件主要位于 /var/log 目录下,常见的日志有 syslog、auth.log、kern.log 等。压缩 Debian 日志通常有以下几种方式,从手动压缩到自动轮转压缩都有。


一、手动压缩日志(简单直接)

1. 使用 gzip 压缩

sudo gzip /var/log/syslog

压缩后会生成 syslog.gz,原文件消失。

2. 使用 xz(压缩率更高)

sudo xz /var/log/auth.log

3. 批量压缩

sudo gzip /var/log/*.log

二、使用 logrotate(推荐,系统自带)

Debian 默认使用 logrotate 自动管理日志压缩。

1. 查看现有配置

ls /etc/logrotate.d/
cat /etc/logrotate.d/rsyslog

2. 典型配置示例(启用压缩)

/var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

关键参数说明:

  • compress:启用压缩(gzip)
  • delaycompress:延迟一轮再压缩(更安全)
  • rotate 7:保留 7 个旧日志
  • daily / weekly:轮转频率

3. 手动执行一次 logrotate

sudo logrotate -f /etc/logrotate.conf

4. 测试配置是否正确

sudo logrotate -d /etc/logrotate.conf

三、使用 zstd 压缩(更现代)

如果你希望更高压缩率和速度:

1. 安装 zstd

sudo apt install zstd

2. 修改 logrotate 配置

compress
compresscmd /usr/bin/zstd
uncompresscmd /usr/bin/unzstd
compressext .zst

四、清理已压缩但无用的旧日志

sudo find /var/log -name "*.gz" -mtime +30 -delete

五、系统日志(systemd journal)

如果你使用的是 journald:

查看占用

journalctl --disk-usage

限制大小

编辑 /etc/systemd/journald.conf:

SystemMaxUse=200M

清理日志

sudo journalctl --vacuum-size=100M

总结建议

  • 日常管理:用 logrotate(默认已配置)
  • 临时释放空间:手动 gzip
  • 追求效率:zstd + logrotate
  • systemd 系统:用 journalctl

如果你有具体日志文件或服务器场景(如 Docker / Nginx / 数据库),我可以给你更针对性的配置。

0 踩