Disk-Usage
告訴 fs 立即從已刪除文件中釋放空間
有沒有辦法告訴核心現在歸還可用磁碟空間?就像在 /proc/ 中寫東西一樣?使用帶有 ext4 的 Ubuntu 11.10。
這可能是一個古老且非常重複的主題。當我的編輯器無法保存我打開的原始碼文件時,只有在點擊 0 空間後才注意到,令我恐懼的是,現在文件夾列表中的字節大小為 0,我開始大肆刪除。
我從使用者和根目錄中刪除了 100 MB 的大文件,並進行了一些硬連結。
就在我這樣做之前
apt-get clean
,/var/cache/apt/archives 中有超過 900MB,現在只有 108KB:# du 108 /var/cache/apt/archives
一小時後仍然沒有可用空間,無法保存我在編輯器中打開的珍貴文件,但請注意以下差異:
# sync; df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda4 13915072 13304004 0 100% /
有什麼建議?我關閉了一些服務/程序,但不確定如何檢查誰可能正在積極佔用磁碟空間。
更多資訊
# dumpe2fs /dev/sda4 Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 884736 Block count: 3534300 Reserved block count: 176715 Free blocks: 422679 Free inodes: 520239 First block: 0 Block size: 4096 Fragment size: 4096
檢查
lsof
是否有打開的文件。在它們關閉之前,空間不會被釋放。sudo /usr/sbin/lsof | grep deleted
會告訴您哪些已刪除的文件仍處於打開狀態。
用於
lsof
查找已刪除但已打開的文件仍佔用空間:lsof | grep deleted | grep etilqs_1IlrBRwsveCCxId chrome 3446 user 128u REG 253,2 16400 2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)
/proc/<pid>/fd/
找到與文件句柄對應的條目:ls -l /proc/3446/fd/etilqs_1IlrBRwsveCCxId lrwx------. 1 user unix 64 Feb 11 15:31 128 -> /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)
現在,
cat /dev/null
進入 fd:cat /dev/null > /proc/3446/fd/128
請注意,inode 仍處於打開狀態,但現在它的長度為 0
chrome 3446 user 128u REG 253,2 0 2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)