温馨提示×

ubuntu syslog怎样转储

小樊
48
2026-09-20 09:50:12
栏目: 智能运维

在 Ubuntu 里,“syslog 转储”通常指 日志轮转(log rotation)、导出备份 或 集中转发。下面分几种常见场景说明。


一、使用 logrotate 自动转储(最常用)

Ubuntu 默认使用 rsyslog + logrotate。

1. 查看 syslog 配置

cat /etc/logrotate.d/rsyslog

常见内容:

/var/log/syslog
{
    rotate 4
    weekly
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

2. 手动触发一次转储

logrotate -f /etc/logrotate.d/rsyslog

3. 常用参数说明

  • rotate 4:保留 4 个旧文件
  • weekly / daily:轮转周期
  • compress:压缩旧日志
  • size 100M:超过大小就转储

示例(按大小):

/var/log/syslog {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    postrotate
        systemctl kill -s HUP rsyslog
    endscript
}

二、手动转储 / 备份 syslog

1. 复制备份

cp /var/log/syslog /backup/syslog-$(date +%F).log

2. 清空当前日志(不删文件)

truncate -s 0 /var/log/syslog

或

: > /var/log/syslog

⚠️ 不要直接 rm,rsyslog 可能仍占用文件。


三、将 syslog 转发到其他服务器(集中转储)

1. 客户端配置(Ubuntu)

编辑:

/etc/rsyslog.conf

添加:

*.* @@192.168.1.100:514

重启:

systemctl restart rsyslog

2. 服务端接收

module(load="imtcp")
input(type="imtcp" port="514")

四、用 journald(如果是 systemd)

Ubuntu 20.04+ 很多日志在 journalctl。

导出 syslog 日志

journalctl -o short > syslog-export.log

限制 journal 大小

/etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=2week

五、常见需求对应方案

需求 方案
自动按天/大小转储 logrotate
备份日志 cp + cron
远程存储 rsyslog 转发
审计合规 logrotate + 远程
磁盘爆了 size + compress

如果你能说明:

  • 是 本地文件转储 还是 远程
  • 是否使用 rsyslog / journald
  • 转储目的是 备份 / 审计 / 防止磁盘满

我可以直接给你一份可复制的配置。

0 踩