「df」コマンドと「du」コマンドでディスク使用量が異なるのはなぜですか?


26

PCのubuntuシステムにアクセスできません。エラーメッセージ:「システムは低グラフィックモードで実行されています」。インターネットから検索したコマンドをいくつか試しました。

空きディスク領域がないように見える問題を発見しました。「df」コマンドと「du」コマンドを使用して確認しました。結果は次のとおりです。

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

そして

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

ディスク領域を増やすためにシステムをどのようにクリーンアップしますか?


タイトルと質問本文の最後の質問はかなり異なります。1つの質問に関連する回答もあれば、他の質問に関連する回答もあります。実際のニーズを明確にし、回答も受け入れる必要があります。
メレビウス

回答:


50

おそらく、いくつかのアプリケーションでまだ使用されているファイルを削除でき、このアプリケーションでは利用可能なままであることをご存じでしょう。これは、/ proc /ファイルシステムのファイル記述子が開いたままになっているためです。

そのため、すでに削除されたファイルにそのようなオープン記述子がある場合、それらによって占有されているスペースは使用されていると見なされますがdf(それらdfは正しい)、duそれらに関連付けられたファイル名がなくなったために考慮できません。

リンクされていないが開いたままのファイルをすべて見つけるには、次のコマンドを使用します。

# lsof | grep '(deleted)'

7
これはちょうど私を救った。ディスクがいっぱいになった理由がわかりませんでしたが、duは空だと言いました。8 GBファイルのオープンファイルハンドル
Cheyne

5
リンクを削除するにはどうすればよいですか?
ヴィカスハーディア14

1
他のユーザーのプロセスによって開かれたままになっている削除済みファイルを表示するには、rootとしてこれを実行する必要がある場合があります。
Envek

1
私にとってこれの根本的な原因は、私の/etc/logrotate.dファイルの1つの誤ったログファイル仕様になってしまいました。不正なエントリにpostrotateルーチンが欠けていたため、デーモンプロセスがその回転/削除されたファイルを手放すことができませんでした。
デール・アンダーソン

リンクされていないが開いているファイルを削除するにはどうすればよいですか?
zx1986

14

リンクを削除するにはどうすればよいですか?–ヴィカスハーディア14年8月22日5:46で

ファイルハンドルを保持するプロセスを見つける必要があります。Dmitry Alexandrovのコマンドを使用すると、プロセスとPIDが表示されます。私たちの場合、「古い」ワニスログファイルがスペースキラーでした。

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

デーモンまたはコンピューター上の他のサービスである場合は、サービスまたはプロセスを再度開始することを忘れないでください。可能であれば、コンピューターを再起動してください;)


9

OK、マニュアルページをチェックしてみましょう:

df-ファイルシステムのディスクスペース使用量を報告する

そして

du- ファイルスペースの使用量を見積もる

これらの2つのツールは、異なる提案を目的としていました。一方でdf、ファイルシステムの使用状況を表示することで、duファイル・スペースの使用状況を報告することです。ファイルシステムレベルで動作しているdu間はファイルからdf動作し、カーネルが利用可能と言っていることを報告します。duこれをサポートするマンページを読み続けてください:

ディレクトリの各FILEのディスク使用量を再帰的に要約します。

それは言うduファイルで作品を。

df各ファイル名引数を含むファイルシステムで利用可能なディスク容量を表示します。ファイル名が指定されていない場合、現在マウントされているすべてのファイルシステムで使用可能なスペースが表示されます。

ここではdf、ファイルについては気にせず、ファイルシステム自体については気にしないと言っています。


duの使用法は、-x文字を使用して変更し、特定のファイルシステム上のファイルのみをカウントするように指示できます。
macetw

1

単に言った:

duルート権限なしで実行しました。で利用可能なスペースをチェックすることができませんので/proc/mntなど、フォルダ。

df それぞれ使用済みおよび空き領域の合計を示しました。

したがって、Linuxルートファイルシステムを確認するときは、duレポートを最終版としてください。


0
df

空きディスク容量を要約する

利用可能なディスク容量が表示されます。

du

ディスク使用量を要約します。

使用されているディスク容量が表示されます。


はい。ただし、「df -Th」の結果では、68Gが使用されていることが示されました。今日の朝、ubuntuシステムにアクセスしようとすると、「システムは低グラフィックモードで実行されています」というメッセージが表示されますが、メモリ使用量を確認すると、「df」コマンドと「du」コマンドが妥当な結果を示しています。しかし、「低グラフィックモード」の問題は何ですか?
-user2068965

これを見てください。
ミッチ

0

それほど混乱するものはありません:ここに外観があります:=

1)du == Disk Usage
これらのファイルが使用しているディスク容量はどれくらいですか?

2)df == Disk Free
ディスクの空き容量はどのくらいですか?

また、システムは低グラフィックモードで実行されているため、「ここ


0

やった
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

私が見ていた21GBの大きな不一致を正確に説明しました!
21GBの場合、問題のファイルは/ swapファイルでした!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.