我有用于存储文件的文件服务器。文件可能会在那里驻留一周或一年。不幸的是,当我从服务器中删除文件时,df命令不会反映释放的空间。所以最终,服务器被填满(df显示 99%),并且我的脚本不会在那里发送更多文件,除非那里可能有几十 GB 的可用空间。
noatime如果这有什么不同,我会在已安装的分区上得到标志。
几个小时前,我的根分区填满了,我将文件从它移开,df 报告:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 183G 174G 0 100% /
Run Code Online (Sandbox Code Playgroud)
所以应该有 9GB 可用,但可用报告为 0,使用率仍为 100%。
我以 root 身份测试,例如
# echo test >a ; cat a
test
Run Code Online (Sandbox Code Playgroud)
它按预期工作;但是作为普通用户,我仍然收到错误消息:
$ echo test >a ; cat a
bash: echo: write error: No space left on device
Run Code Online (Sandbox Code Playgroud)
我进行正面测试的根主目录和我的主目录在同一个分区上。 fstab 条目是:
/dev/hda1 / ext3 noatime,defaults,errors=remount-ro 0 1
Run Code Online (Sandbox Code Playgroud) 我很迷惑。我们的 EC2 实例显示磁盘已满 98%。df -Th 的输出显示:
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 7.9G 7.7G 172M 98% /
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行 ncdu 来查看空间的去向,它会显示只使用了 1.4gb:
742.4MiB [##########] /usr
505.1MiB [###### ] /var
75.3MiB [# ] /lib
55.3MiB [ ] /opt
31.8MiB [ ] /boot
21.2MiB [ ] /lib64
18.8MiB [ ] /etc
11.4MiB [ ] /sbin
Run Code Online (Sandbox Code Playgroud)
搜索大文件也不会引发任何问题。
我对其他 5GB 的去向感到困惑,并且真的需要恢复它,因为服务器空间不足。
知道空间去了哪里以及如何恢复它吗?