Linux
回收“df”表示應該可用的空間
我在 Rackspace 的一個 CloudServers 上託管了一個 linux 伺服器,它顯示我沒有可用空間,但也顯示我在根分區上沒有使用 12GB。該伺服器的唯一工作是每晚通過 rsync 從另一台伺服器對文件進行 rsync 並保持這些文件的緊急備份。
我找到了一個目錄,其中包含一些不需要的備份文件,因此刪除了這些文件,這就是我未使用的 12GB 的原因。刪除文件會縮小“已使用”空間,但不會為“可用”空間提供任何內容。
lsof
並沒有表明它持有任何東西,並df -i
說我有很多空閒的 inode。我也多次重啟了這個伺服器,問題仍然存在。我什至重新啟動到救援模式並在
fsck
設備上執行並沒有看到任何明顯的錯誤:root@RESCUE-nightly-snapshot:~# fsck /dev/xvdb1 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/xvdb1: recovering journal Setting free inodes count to 20630768 (was 20630766) Setting free blocks count to 2845985 (was 2755815) /dev/xvdb1: clean, 340752/20971520 files, 81040087/83886072 blocks root@RESCUE-nightly-snapshot:~#
所以我有點卡住了,因為普通使用者無法創建任何新文件,而 syslog 使用者無法附加到任何日誌文件。
最後,文件系統是 ext3,我腦子裡有東西在說,也許日記有什麼奇怪的地方。我不知道這個空間是否可以被期刊佔用,或者如何判斷。
我將不勝感激有關如何重新獲得這個應該被釋放的空間的任何提示。
root@nightly-snapshot:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 315G 303G 0 100% / udev 3.9G 4.0K 3.9G 1% /dev tmpfs 1.6G 244K 1.6G 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 0 3.9G 0% /run/shm overflow 1.0M 0 1.0M 0% /tmp /dev/md0 5.0T 4.2T 593G 88% /mnt/raid root@nightly-snapshot:~# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda1 20971520 340750 20630770 2% / udev 1016188 422 1015766 1% /dev tmpfs 1018170 319 1017851 1% /run none 1018170 3 1018167 1% /run/lock none 1018170 1 1018169 1% /run/shm overflow 1018170 1 1018169 1% /tmp /dev/md0 167772160 12607068 155165092 8% /mnt/raid root@nightly-snapshot:~# root@nightly-snapshot:~# lsof | grep -i deleted root@nightly-snapshot:~#
這個空間有可能是為 root 使用者保留的。請檢查為 root 保留了多少空間,其中:
tune2fs -l /dev/xvda1
這將為您提供為 root 使用者保留的塊計數,將其乘以塊大小,您將獲得保留空間的大小(以字節為單位)。
您可以修改保留空間:
tune2fs -m 1 /dev/xvda1
後面的數字-m
是應保留的磁碟空間百分比。在本例中為 1%。