Linux根目录文件很小,但磁盘却满了

异常现象

公司的服务器总是报磁盘空间不足,但是服务器上并没有什么大的文件。刚开始出现这个问题的时候,删除了一些不用的文件腾出一部分空间,再后来没有可以删除的,就对磁盘进行扩容了,但是过了一段时间后扩容的磁盘也满了,就很奇怪到底是什么文件占用了磁盘。

# 使查看磁盘使用率,发现使用了89G
[root@localhost~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        99G   89G  4.6G  96% /

# 但是统计磁盘根目录文件大小,显示只使用了20G
[root@iZ8vbfv6sjcwnw6m56qhh0Z ~]# du -h -d1 /
...
20G     /

原因

后来查找了服务器发现是日志文件的问题,在服务器上启动应用程序的时候使用nohup命令,对应生成了一个nohup.out的日志输出文件,因为应用程序有对应的日志文件,当时就把这个nohup.out文件删除了!!!就是这个删除操作出了问题,因为在应用程序没有重启的情况下,删除了应用程序占用的文件,实际上该文件只是被标记为deleted了上并没有删除。因为被标记deleted所以在使用du命令统计的时候该文件并没有统计上,因此就出现了上述情况。

解决办法

  1. 重启一下应用程序即可,释放删除的文件
  2. 如果没法重启应用程序,就不要使用删除文件的形式清日志,使用 echo " " > nohup.out 。用空字符串覆盖日志文件

猜你喜欢

转载自blog.csdn.net/zhaopeng_yu/article/details/102548872
今日推荐