1、问题描述
前段时间在公司内部部署了一套 CentOS 系统来做一些相关的内部测试,根目录仅 50G 空间大小。我在上面搭建了一套监控系统(用于测试),后面因其他工作就忘记停掉数据采集插件,导致有大量的日志输出,直接把 50G 空间给占满了。尽管系统根目录文件系统被耗尽,但 CentOS 系统本身还是可正常使用的,包括正常的登录、文件创建(数据目录)等。但是你将无法下载(yum)任何工具(包),以及在快捷键 Tab 自动补全时也会报错(提示已无可用磁盘空间)等。
-bash: cannot create temp file for here-document: No space left on device
2、解决方案
-
查看磁盘使用情况
可以看到系统根目录使用已经达到 100%,已经不可用。
-
排查是哪些大文件占用该系统根空间
find / -xdev -size +1G -exec ls -l {} \; find / -type f -size +1G -exec du -h {} \; # 选其一即可 # 命令作用是:查询根目录(/)下超过1G大小的文件
可看到,最大文件有16G大小日志文件,这就是导致系统根空间占满的罪魁祸首。
我监控使用
TDengine
来做的数据存储,关于 TDengine 的简单部署,大家可参考我之前的博文《Telegraf + TDengine + Grafana 监控平台》 -
删除这些大日志文件即可
这里强调一下,不是什么文件都可随便删除,要根据实际情况来处理。
3、小结
通过上述案例不难看出,在实际工作中一定要做好前期准备,如:数据存储路径、日志存储路径、日志轮转等相关工作,防止根目录空间被耗尽。