Linux上启动程序提示空间不足,看Zabbix监控后发现根目录空间不足告警。
处理过程:
查看系统占用情况如下:
通过df –hT发现如图所示:
首先不考虑系统扩容,因为生产线系统资源扩容是需要走各种流程审批,大家都懂得哦。
先删删日志。
查看下系统日志,如下图所示:
结果发现才14M,算了,删与不删没多大区别。
原本想先删除些大文件,解决下燃眉之急!
通过命令查找:
find / -xdev -size +100M -exec ls -l {} ;
发现.xsession-errors的隐藏文件占了好多个G。
也可以用如下命令打印出占用多的隐藏文件:
watch -d -n 1 -t 'ls -AltF .' 退出按:CTRL+z
执行命令后的效果如图所示:
清空.xsession-errors的日志内容
> .xsession-errors或 echo >.xsession-errors
再次查看系统分区大小已经正常了:
此办法只能暂时解决问题,如不能查明造成.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计划任务去定时自动清理,方法千千万,找适合自己所在环境的即可。