使用 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)
附带问题,什么是syslog
和adm
?!
看到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 文件并报告结果。谢谢你。
您当前的日志很好,但那些没有.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)
这是因为管道打开了当前用户的外壳。