日志文件占用了太多空间,我无法删除\清除它们

Muh*_*ana 6 log logrotate

使用 Ubuntu 2.5 个月后,我的 /var 目录达到了大约37 GB或 RAM,而我的/目录全部为50 GB或 RAM,其余空间用于我的/home.

我发现以下文件占用了太多空间 /var/log

-rw-r----- 1 syslog            adm   14G Feb  2 07:46 kern.log.1
-rw-r----- 1 syslog            adm   13G Feb  2 07:46 ufw.log.1
-rw-r----- 1 syslog            adm  5.9G Feb  2 07:46 syslog.1
-rw-r----- 1 syslog            adm  451M Feb  2 23:53 syslog
-rw-r----- 1 syslog            adm  451M Feb  2 23:53 kern.log
-rw-r----- 1 syslog            adm  441M Feb  2 23:51 ufw.log
Run Code Online (Sandbox Code Playgroud)

附带问题,什么是syslogadm?!

看到ufw那里,我检查了它的配置

$ sudo ufw status verbose
Status: active
Logging: on (full) <<<<<
Run Code Online (Sandbox Code Playgroud)

所以我将日志记录设置为低

$sudo ufw logging low
Run Code Online (Sandbox Code Playgroud)

我读到 logrotate 应该处理日志滚动,但/var/log默认情况下它的配置似乎不处理目录。

这是我的/etc/logrotate.conf文件内容

$ cat /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly

# 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
Run Code Online (Sandbox Code Playgroud)

我尝试删除log-file-name.log.digit(即kernel.log.1, ufw.log.1, whatever.log.0) 但我不能。我试过了,sudo echo '' > kernel.log.1但我也失败了。它总是说

$ sudo echo '' > kern.log.1 
bash: kern.log.1: Permission denied
Run Code Online (Sandbox Code Playgroud)

重启也没有用。日志目录没有清除(我认为linux在重新启动时会清除所有日志,显然我错了),我仍然无法清除\删除提及日志。

我如何清除这些日志并确保我再也不会遇到这种情况?

使用 Ubuntu 13.10

回答

sudo rm /var/log/*.1
Run Code Online (Sandbox Code Playgroud)

但我怀疑让我的命令失败的原因是我在目录中尝试做同样的事情/var/log(即 pwd = /var/log,然后运行sudo rm kernel.1.log)。如果有人遇到同样的情况,请尝试删除/var/log目录(即cd /var/log;sudo rm*.1)中的 *.1 文件并报告结果。谢谢你。

Bra*_*iam 8

您当前的日志很好,但那些没有.1. 这很好,您可以使用以下方法将其删除:

sudo rm /var/log/*.1
Run Code Online (Sandbox Code Playgroud)

现在你的命令不起作用,因为这个:

sudo 'Everything here runs as root' > Everything here run as user
Run Code Online (Sandbox Code Playgroud)

所以如果你想做你尝试过的正确的事情是:

sudo sh -c "echo '' > kern.log.1"
Run Code Online (Sandbox Code Playgroud)

这是因为管道打开了当前用户的外壳。