df -h 报告称,删除的文件不会增加可用空间

df -h 报告称,删除的文件不会增加可用空间

我正在编写数据整理脚本(python 和 bash),以整理数据并将大量文本文件导入数据库。

我目前处于测试阶段,所以我正在生成几个 K 的文件并删除它们(这些文件占用了大约 20G 的空间)。测试运行后,我会删除这些文件(有时没有导入数据库)。

我注意到我的磁盘上的可用空间量在稳步减少(如 所示df -h)。我不明白为什么会这样,因为我使用 rm *(在数据目录中),并且在使用 Nautilus 的情况下,我也会清空垃圾箱。

类似地,我注意到,当我将数据导入(postgresql)数据库,然后使用从表中删除数据时DELETE FROM tablename;,postgresql 数据目录中消耗的大小也不会下降。

目前,我已经丢失了大约 200G 的硬盘,我需要恢复这些空间 - 但不知道该怎么做 - 有什么想法吗?

我正在运行 Ubuntu 10.0.4 LTS + postgresql 8.4

[[更新]]

du -c / | 2>/dev/null | grep total产生以下输出:

4   /usr/src/linux-headers-2.6.32-38-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-41-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-36-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-30-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-35-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-31-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-27-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-28-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-40-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-34-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-37-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-33-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-39-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-29-generic/include/config/mtdram/total
4   /usr/src/linux-headers-2.6.32-32-generic/include/config/mtdram/total
187426036   total

df -hi产生以下输出:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1                29M    1.8M     27M    7% /
none                    491K     776    490K    1% /dev
none                    492K       6    492K    1% /dev/shm
none                    492K      76    492K    1% /var/run
none                    492K       2    492K    1% /var/lock
none                    492K       1    492K    1% /lib/init/rw
/dev/sdb1                30M    3.0K     30M    1% /mydata
/dev/sdc1                  0       0       0    -  /media/Cruzer

答案1

du -c / | grep total请显示和的输出df -hi以判断空格去了哪里。另外,请参阅这篇关于刷新 Postgresql 缓存

编辑:您可能需要清理并重新索引数据库,或者转储并恢复。许多DELETE操作的大小增加是 Postgresql 的一个特性,而不是错误。看这里

相关内容