系统日志文件容量限制

系统日志文件容量限制

syslog由于根分区的可用空间较小,我想减少存储空间的使用。

syslog 的存储使用情况如下所示。

-rw-r-----  1 syslog            adm      42G  Aug 31 14:56 syslog
-rw-r-----  1 syslog            adm     3.6G  Aug 31 11:55 syslog.1
-rw-r-----  1 syslog            adm     512M  Aug 30 18:24 syslog.2.gz
-rw-r-----  1 syslog            adm      34K  Aug 28 07:44 syslog.4.gz
-rw-r-----  1 syslog            adm      52K  Aug 27 08:31 syslog.5.gz
-rw-r-----  1 syslog            adm      47K  Aug 26 08:47 syslog.6.gz

为了减少 的存储使用量(低于 1000MB)syslog\etc\logrotate.conf进行了如下编辑。但是,现在存储使用量很大。

# see "man logrotate" for details
# rotate log files weekly
daily

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here
size 1000M

我怎样才能减少所占用的存储空间syslog

答案1

我认为你是从错误的角度来处理这个问题的。

分析它为什么这么大应该是您的首要任务:如果是由于错误导致的,请先修复错误。在使用率很高的系统上,我们的系统日志文件每天都会轮换,最终大小如下...

    -rw-r----- 1 syslog    adm    2937 Aug 31 08:50 syslog
    -rw-r----- 1 syslog    adm   28451 Aug 31 06:30 syslog.1
    -rw-r----- 1 syslog    adm    2263 Aug 30 06:50 syslog.2.gz
    -rw-r----- 1 syslog    adm    2621 Aug 29 06:30 syslog.3.gz
    -rw-r----- 1 syslog    adm    2392 Aug 28 06:50 syslog.4.gz
    -rw-r----- 1 syslog    adm    2812 Aug 27 06:50 syslog.5.gz
    -rw-r----- 1 syslog    adm    3025 Aug 26 06:50 syslog.6.gz
    -rw-r----- 1 syslog    adm    2372 Aug 25 06:25 syslog.7.gz

因此,请查看内部syslogsudo tail /var/log/syslog查看是否有东西跳出(诸如错误的词语或一遍又一遍重复的行)。

如果 3.6Gb 的日志文件对于您的系统来说是正常的(我非常怀疑这一点),那么您真的需要一个非常大的硬盘。

答案2

首先,您应该尝试找到大量日志记录的来源。

如果无法修复该原因,您可以尝试以下选项之一:


您可以SystemMaxUse=50M设置/etc/systemd/journald.conf

https://askubuntu.com/a/1012913/34298

您可以使用 journalctl --vacuum 命令手动减少空间,例如:

journalctl --vacuum-size=50M

我不确定这是否实际上/var/log/syslog也会产生影响。


也许您知道如何做到这一点/etc/rsyslog.d/50-default.conf,我找到了这个答案:

限制当前系统日志的大小

但它似乎已经过时了。如果您在现代 Ubuntu 中找到了实际的解决方案,请告诉我。


使用此脚本手动截断系统日志:

保存在/usr/local/sbin/truncate_syslog.sh

#!/bin/bash

# delete all but the last 1000 lines in syslog

LINES=1000
tail -n $LINES /var/log/syslog > /tmp/tmpfile
cat /tmp/tmpfile > /var/log/syslog
rm /tmp/tmpfile
service syslog restart

看我的要旨

相关内容