Linux刪除大文件rm -rf的問題

請幾天,我刪除系統彙總的大文件,大約100G左右,當我使用rm -rf  xxxx.log刪除後,使用df -h發現空間並未釋放。

一開始以爲是由於磁盤虛擬掛載,導致我刪除的文件並不是當前目錄的文件。但後來發現並不是。

我在網絡上搜索發現都是  要:

lsof | grep delete

kill -9 xxx

但是我覺得這樣不安全。

比如文件被進程鎖定,或者有進程一直在向這個文件寫數據等等。

要理解這個問題,就需要知道Linux下文件的存儲機制和存儲結構。空間還沒釋放,就是因爲httpd進程還在一直向這個log文件寫入內容,導致Linux還認爲存在這個文件,導致不能釋放。

一、

echo " " >xxxx.log   這種方法可以清除大數據文件。

二、

cat  /dev/null >xxxx.log 這種方法也可以清除大數據文件。

上面這兩種方法根本無需殺掉進程,方便且安全,適用於動態的刪除數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章