登录我的Ubuntu机器,我收到一条警告,说我的磁盘空间不足。追溯,我发现它是系统日志,特别是吃掉我的1TB磁盘的kern.log。
-rw-r----- 1 syslog adm 240G Feb 25 14:22 kern.log
-rw-r----- 1 syslog adm 516G Feb 21 07:59 kern.log.1
-rw-r----- 1 syslog adm 1.1K Feb 15 07:39 kern.log.2.gz
-rw-r----- 1 syslog adm 19K Feb 7 07:56 kern.log.3.gz
-rw-r----- 1 syslog adm 37K Feb 1 07:45 kern.log.4.gz
-rw-r----- 1 syslog adm 23G Feb 25 14:52 syslog
-rw-r----- 1 syslog adm 25G Feb 25 08:11 syslog.1
-rw-r----- 1 syslog adm 1.6G Feb 24 07:49 syslog.2.gz
-rw-r----- 1 syslog adm 1.7G Feb 23 08:18 syslog.3.gz
-rw-r----- 1 syslog adm 3.4G Feb 22 08:19 syslog.4.gz
-rw-r----- 1 syslog adm 3.6G Feb 21 07:59 syslog.5.gz
-rw-r----- 1 syslog adm 6.9G Feb 20 07:38 syslog.6.gz
-rw-r----- 1 syslog adm 7.3G Feb 19 07:36 syslog.7.gz
从上面的代码片段中,您可以很容易地发现kern.log和kern.log.1占用了我的1TB磁盘的80%。我可以通过删除文件来获得空间,但我认为它不会解决问题。
有没有人知道问题可能是什么? 我看到你可以通过以下方式获得日志记录级别:
cat /proc/sys/kernel/printk
我得到了
4 4 1 7
答案 0 :(得分:22)
这是一个古老的问题,但是前两个答案都不是好的解决方案:
logrotate
),磁盘问题就消失了,那么您的系统可能会继续写入日志并在您使用磁盘之前填满磁盘甚至可以找出潜在的问题。syslog
会使跟踪将来的问题变得更加困难!相反,这是一种更安全的方法,可让您在回收磁盘空间的同时保留日志文件,同时也阻止日志文件再次执行此操作。
安全清除日志:查看(或备份)日志以识别系统问题后,请键入> /var/log/syslog
(包括>
)以清除日志。为此,您可能需要是root用户,在这种情况下,请输入sudo su
,密码和上面的命令。
然后,您可以使用logrotate
强制日志旋转并删除达到一定大小的日志。在这种情况下,您可以使用sudo nano /etc/logrotate.d/rsyslog
编辑配置并添加一行:
/var/log/syslog
{
rotate 7
daily
maxsize 1G # add this line
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
syslog
在1天之后或当文件变为1GB时(以先到者为准)“轮换”(即,创建新的日志文件并存档先前的日志文件)。请注意,rotate 7
意味着您的系统将仅保留7个syslog
备份,因此它只能占用7GB的空间maxsize
,rotate N
和其他设置来自定义日志-使用命令man logrotate
查看更多信息。kern.log
用于内核事件,auth.log
用于身份验证事件等)。使用此设置可以使这些其他日志文件总共仅占用4GB。...
{
rotate 4
weekly
maxsize 1G
...
}
这将使您的系统保留事件记录,而不会填满磁盘。
有关更多信息,请参见manual和similar question。
答案 1 :(得分:1)
您检查过这些文件的内容吗?显然,您的服务器会发生一些事情,导致生成事件。解决导致该问题的任何问题,并且您的日志应恢复到正常大小。
答案 2 :(得分:0)
我通过在Ubuntu 18.04中执行以下两个步骤解决了此问题:
从/ var / log中删除所有大文件。
sudo rm -rf kern*.log
sudo rm -rf syslog*.log
类似地,删除大尺寸的日志。
关闭服务:
sudo systemctl stop rsyslog
sudo systemctl disable rsyslog