ここで 2 つのことが起こっている可能性があります。
最初 、あなたのファイルシステムは root
だけのスペースを予約しています 通常のユーザーがディスク容量を使い果たしたときに重要なシステムプロセスが失敗しないように、に書き込むことができます。そのため、130G のうち 124G が使用されていますが、使用可能なものはありません。おそらく、削除したファイルによって使用率がこの時点まで低下しましたが、通常のユーザーのしきい値を下回ることはありませんでした.
これがあなたの状況であり、絶望的である場合は、root
用に予約されたスペースの量を変更できる場合があります。 . 1% (デフォルトは 5%) に減らすには、コマンドは次のようになります
# tune2fs -m 1 /dev/sda3
2番目 オペレーティング システムは、まだ開いている削除済みファイルのディスク領域を解放しません。 Apache のログ ファイルの 1 つを (たとえば) 削除した場合は、領域を解放するために Apache を再起動する必要があります。
プロセスで使用されているファイルを削除すると、ls
までにファイルを表示できなくなります .プロセスを停止するまで、プロセスはそのファイルへの書き込みを続行します。
これらの削除されたファイルを表示するには、lsof|grep delete
を実行するだけです
ディスクがいっぱいになる他の 2 つの方法 問題:
1) マウント ポイントの下に隠れる: Linux は、マウント ポイントの下に「隠された」ファイルを含むフル ディスクを表示します。ドライブにデータを書き込んで、その上に別のファイルシステムをマウントすると、Linux は、マウント ポイントの下にファイルが表示されなくても、ディスクの使用状況を正しく記録します。 nfs マウントがある場合は、それらをアンマウントしてみて、マウントの前にこれらのディレクトリに誤って何かが書き込まれていないかどうかを確認してください。
2) 破損したファイル: これは、SMB を介した Windows から Linux へのファイル転送で時折見られます。 1 つのファイルがファイル記述子を閉じることができず、4 GB のゴミのファイルができてしまいます。
ファイルがあるサブディレクトリを見つける必要があるため、これを修正するのは面倒ですが、ファイル自体は簡単に削除できるため、簡単に修正できます。 du
を使用します コマンドを実行し、ルート サブディレクトリのリストを作成して、ファイル スペースが使用されている場所を見つけます。
cd /
du -sh ./*
通常、最上位ディレクトリの数は限られているため、人間が読める フラグ -h
どのサブディレクトリがスペースを占有しているかを確認してください。
次に、問題の子に cd し、その中のすべてのアイテムに対してプロセスを繰り返します。大きなアイテムを見つけやすくするために、du を少し変更し、並べ替えと組み合わせます。
cd /<suspiciously large dir>
du -s ./* | sort -n
すべてのファイルとディレクトリについて、バイト サイズごとに最小から最大の出力を生成します
4 ./bin
462220 ./Documents
578899 ./Downloads
5788998769 ./Grocery List
大きすぎるファイルを見つけたら、通常は削除できます。