ディスクがいっぱいになったときに問題を解決する方法

ディスクがいっぱいになったときに問題を解決する方法

マイディスクドライブ/ dev / sdcがいっぱいです(下記参照)。とにかく、すべてのディスク容量を消費する理由を解決する方法はありますか?

実行してみましたが、du -d -h 1正しいコマンドではないようです。

$ df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc         14G   13G     0 100% /            <--- here
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  174M  1.7G  10% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1       488M  132M  321M  30% /boot
/dev/sdd         99G   25G   73G  26% /data
tmpfs           378M     0  378M   0% /run/user/0

その他のログ出力:

$ du -h -d 1

52K     ./tmp
131M    ./boot
24M     ./opt
4.0K    ./mnt
34M     ./etc
1.6G    ./root
0       ./sys
44K     ./sysadmin
du: cannot access './proc/58885/task/58885/fd/4': No such file or directory
du: cannot access './proc/58885/task/58885/fdinfo/4': No such file or directory
du: cannot access './proc/58885/fd/4': No such file or directory
du: cannot access './proc/58885/fdinfo/4': No such file or directory
0       ./proc
16K     ./lost+found
0       ./dev
25G     ./data
4.0K    ./media
32K     ./home
182M    ./run
2.6G    ./usr
921M    ./var
4.0K    ./srv
31G     .
$ du -ahx --threshold=1G

1.2G    ./root/ffmpeg_sources
1.6G    ./root
2.6G    ./usr
5.2G

ベストアンサー1

予期しないディスク使用量を特定するには、いくつかのアプローチを取る必要があります。

  1. ディスク使用量を隠す

    何人かの人々がそれを提案したり、du -xhs /*その変形を提案した。これは良い出発点ですが、マウントポイントの下を見ることはありません。 (誤ってデータを書き込んだ後にファイルシステムをマウントする可能性があります。)ワイルドカードには組み込みが必要なため、このコマンドはルートではなくファイルシステムについても報告します。

    これらの問題は次のように解決できます。バインドマウント

    mkdir -p /mnt/root
    mount --bind / /mnt/root
    shopt -s dotglob
    du -hs /mnt/root/*
    

    これにより、ルートファイルシステムがマウントされ、/mnt/rootすべての最上位ディレクトリ(およびファイル)の要約が報告されます。プライマリマウントとは異なり、/考慮すべき(そして避けるべき)セカンダリマウントファイルシステムはありません。

  2. 削除されたファイル

    削除されたがまだ開いているファイルは、閉じるまでディスク割り当てを維持します。これは他の答えで扱われたので、完全性のためにここで言及します。

    lsof | grep deleted
    

おすすめ記事