Linux上启动程序提示空间不足,看Zabbix监控后发现根目录空间不足告警。

处理过程:

查看系统占用情况如下:

通过df –hT发现如图所示:




根目录小于50gdocker丢失镜像 根目录已满怎么办_linux扩容根目录空间


首先不考虑系统扩容,因为生产线系统资源扩容是需要走各种流程审批,大家都懂得哦。

先删删日志。

查看下系统日志,如下图所示:


根目录小于50gdocker丢失镜像 根目录已满怎么办_根目录小于50gdocker丢失镜像_02


结果发现才14M,算了,删与不删没多大区别。

原本想先删除些大文件,解决下燃眉之急!

通过命令查找:

find / -xdev -size +100M -exec ls -l {} ;

发现.xsession-errors的隐藏文件占了好多个G。

也可以用如下命令打印出占用多的隐藏文件:

watch -d -n 1 -t 'ls -AltF .'    退出按:CTRL+z

执行命令后的效果如图所示:


根目录小于50gdocker丢失镜像 根目录已满怎么办_根目录小于50gdocker丢失镜像_03


清空.xsession-errors的日志内容

> .xsession-errors或 echo >.xsession-errors

再次查看系统分区大小已经正常了:


根目录小于50gdocker丢失镜像 根目录已满怎么办_linux扩容根目录空间_04


此办法只能暂时解决问题,如不能查明造成.xsession-errors日志暴涨得原因,运行一段时间后问题依然会复发,下面来说说造成原因和永久解决办法。

.xsession-errors是个什么玩意?

.xsession-errors文件是X Window系统记录Linux图形环境中发生的所有错误的位置,只要运行了基于X Window的图形化界面,任何图形化界面的应用都可能将错误信息写入这个文件,只要磁盘允许,就会无限增长,任何 Linux发行版都会受到影响。

虽然/etc/X11/Xsession文件中有控制机制,当这个文件超过一定大小,每次启动图形化界面环境时都会清空这个文件,但是并不是所有人的Linux每天都关机,Linux用户可能不重启计算机长达数周甚至数月,因此这个文件可能达到十分庞大的大小。

如何永久解决:

方法一:

编辑 /etc/X11/Xsession (X Window的配置文件),检索以下内容:

ERRFILE=$HOME/.xsession-errors修改为:ERRFILE=/dev/null

说明:修改错误日志文件保存路径为/dev/null。也可以把日志保存在别的地方,如/tmp下。

方法二:

设置.xsession-errors文件的immutable属性,禁止被写入:

命令:chattr +i .xsession-errors

也可以写个crontable计划任务去定时自动清理,方法千千万,找适合自己所在环境的即可。