前几天我遇到了以下问题,我在虚拟机中的 VPS 上“磁盘空间不足”。我花了一段时间才发现,其实问题不在于磁盘空间本身,而是文件系统节点用完了。df -i
显示使用率为 100%。然后我又花了更长的时间才确定原因。原因是/home/teamspeak/logs
文件夹包含超过 20 万个甚至更多的日志文件,每个文件大小为 1 kb。在过去的 2 年左右,teamspeak 进程每 20 秒创建一个日志文件……太棒了。
然后我开始删除文件夹中的文件,其实这并不容易,而且花了一个多小时……rm *
实际上没有用,因为过了很长时间才说文件列表太长。然后我使用了以下命令:
find /home/teamspeak/logs -type f -mtime +1 -exec rm -f {} \;
之后,文件夹有点空了,只显示其中剩余的 17 个文件。
但现在问题来了……ls
在文件夹中执行操作仍然会导致文件夹中的 shell 冻结约 2 分钟。
有人知道原因吗?现在文件系统是不是坏了?发生此类事件后,我需要执行什么命令来“清理”或优化文件系统吗?