「/」でスペースを無駄にすることが何であるかを確認するには?

「/」でスペースを無駄にすることが何であるかを確認するには?

スペースを無駄にすることが何であるかを見つけることができます。

 du -sm * | sort +0nr | head -30

しかし、「/」が100%満たされ、/foo、/foo2などのようなマウントポイントが多い場合はどうなりますか?たとえば、取得する方法:マウントポイントではなく "/"のディレクトリサイズのリストは何ですか? (再帰はマウントポイントではないか?)

更新:機能しません。

cd /; du -sxm * 2>/dev/null | sort +0nr | head -30

例えば、「/FOO」 (AIX6.1 および SLES 9.4 で試みた) にマウントされたディレクトリーをリストするからです。

修正する:

du -xm / | sort +0nr | head -30

これはAIXで動作します。今どうなりますか? :D

答え1

man duそれ自体は次のように言及されます。

-x, --one-file-system
              skip directories on different file systems

だから何か

du -xm * | sort +0nr | head -30

少なくともduGNU coreutils(私のバージョンは8.20)を使用している場合は大丈夫です。

これがAIXに適用されるかどうかはわかりません(答えを投稿するまでタグを知りませんでした。申し訳ありません)。

答え2

スペースを無駄にしているアイテムが見つからない場合は、他のマウントポイントの下に隠されている可能性があります。たとえば、インストールされて/mnt/backup/いない状態でバックアップを作成した場合、バックアップファイルはそのファイルに保存されますが、後でインストールする/限り表示されなくなります。/mnt/backup/

スイッチ--one-file-systemも役に立ちません。問題なく清潔にインストールする必要があります。

mkdir /mnt/something
mount /dev/yourroot /mnt/something

次に、または目的のツールを使用してファイルをスキャンします/mnt/something/duxdiskusage

それでも結果が出ない場合は、ルート予約のクレイジー値(ext *、tune2fs)を確認するか、一般的なファイルシステム(fsck)を確認してください。一部のファイルシステムの障害により、使用済み/空き容量の計算が不正確になる可能性があります。

答え3

渡す-xdu他のファイルシステムを通過しないオプションです。duルートディレクトリ自体から呼び出されます(呼び出されると、ルートdu -x *ディレクトリに直接隣接するマウントポイントを持つすべてのファイルシステムに移動します)。

du -mx / | sort -nr | head -n 30

答え4

マウントポイントが多い場合、またはファイルがマウントされる前にマウントポイントに書き込まれている可能性がある場合は、セカンダリマウントポイントにデバイスをマウントすると便利です。私が使用したほとんどのシステムで/mnt利用可能で、使用されていません。他の人は実際に/mntリムーバブルメディア用のマウントポイントを使用して配置します。どちらの場合も、ここにマウントポイントを追加してディスクをマウントできる必要があります。そこにルートデバイスをマウントし、duそのマウントポイントに対して実行します。

削除されたがまだ開いているファイルを確認するには、マウントポイントdfと使用量をdu -k比較してください。ブロックサイズがデバイスのブロックサイズと一致しない場合、通常不一致が発生しますdu

ロギングプログラムがログファイルを再開せずにログファイルを回転すると、この問題が発生することがあります。多くのバージョンでは、syslog信号が送信されるとログファイルが再び開き、HUP他のバージョンでは再起動する必要があります。

関連情報