删除大文件后,`df`需要花费多长时间?


12

我在Ubuntu服务器上删除了一个2.3GB的日志文件,df但似乎没有收到更改。在df检测到大文件已被删除之前,通常是否会有延迟?

Answers:


20

听起来文件仍在通过某些进程打开。您需要重新启动该服务以释放磁盘空间。


1
对于日志文件尤其可能如此。许多程序在启动时会打开其日志文件,直到退出后才关闭它们。
mattdm'2

1
您可以找出它是否仍在使用中以及由谁使用lsof
Joris

好问题,好答案。我一直想知道这已经有一段时间了。同样,您可以通过将其发送给SIGHUP来使其关闭文件句柄。例如,如果进程12345具有打开的“已删除”文件,则sudo kill -HUP 12345可以使该进程将其关闭。(当然,这取决于该进程如何处理SIGHUP信号。但是,许多面向守护程序的文件在收到SIGHUP时将关闭并重新打开文件句柄。)
Mark E. Haase 2012年

我以为我们无法删除打开的文件!
Ashish Karpe 2015年

1
@AshishKarpe不,您可以删除一个打开的文件,但是打开该文件的过程会将文件的内容保留在磁盘上。由于没有任何现有文件名引用该文件,因此其他进程现在看不到该文件,但是打开该文件的进程仍可以对其进行读写。一旦该过程关闭了文件,内容将被删除,从而回收磁盘空间。
乔纳森·哈特利

2

如果文件系统空间不足,您可能会遇到文件系统上的保留空间。ext2 / 3/4文件系统为root预留了一些保留空间。默认情况下为5%。因此,如果已满并且2.3GB小于驱动器上的空间的5%,则文件系统仍将显示已满。

在这种情况下,您有两种选择。要继续释放空间到可用空间可用或修改文件系统已保留的空间量。要修改保留空间量,请使用tune2fs -m 0 /dev/sda10替换为您希望拥有的保留空间的百分比,并使用相应的设备替换/ dev / sda1。

见接受答案这个问题的更多细节。


0

不久。很有可能该文件仍在使用中。在您终止相应的进程之前,不会释放磁盘空间。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.