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
因此,请查看内部syslog
并sudo 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
看我的要旨