使用 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
附带问题,什么是syslog
和adm
?!
看到ufw
那里,我检查了它的配置
$ sudo ufw status verbose
Status: active
Logging: on (full) <<<<<
所以我把日志记录设置为低
$sudo ufw logging low
我读到 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
我尝试删除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
重启也没有用。日志目录没有被清除(我以为 Linux 在重启时会清除所有日志,显然我错了),而且我仍然无法清除\删除提及日志。
我怎样才能清除这些日志并确保不再遇到这种情况?
使用 Ubuntu 13.10
回答
sudo rm /var/log/*.1
但是我怀疑导致我的命令失败的原因是我在目录中尝试执行相同的操作/var/log
(即 pwd = /var/log
,然后运行sudo rm kernel.1.log
)。如果有人遇到同样的情况,请尝试在/var/log
目录中删除 *.1 文件(即cd /var/log;sudo rm*.1
)并报告结果。谢谢。
答案1
您当前的日志仍然很好,但没有 的日志.1
。这很好,您可以使用以下命令将其删除:
sudo rm /var/log/*.1
现在你的命令由于以下原因而不起作用:
sudo 'Everything here runs as root' > Everything here run as user
因此,如果您想做您尝试过的事情,正确的做法是:
sudo sh -c "echo '' > kern.log.1"
这是因为管道使用当前用户打开了一个 shell。
答案2
您可以通过以下方式截断日志而不删除
cat /dev/null > file.log
但是在执行命令之前备份和存档日志是有用的。