web-dev-qa-db-ja.com

ディスクはいっぱいですが、大きなファイルやフォルダを見つけることができません

Ubuntuサーバーでは、ほとんどすべてのディスクを使用していることがわかります。

Usage of /:   95.5% of 118.12GB

そして、私は大きなフォルダーとファイルを見つけようとし、ncduを実行します:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

ncduによると、私は10 GiBのうち128 GiBについて使用します-それは10 %についてです。矛盾。

再起動せずにubutntu serverをきれいにする方法は?

ncduがあると思い、別のアプリを使用して大きなファイルやフォルダーを見つけました。それらはすべてncduと同じ結果を示します。

df -hコマンドは、ディスクがいっぱいであることを示します。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

更新

Sudo du -sch /*結果:

/# Sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G合計は通常どおり。しかし、cannot access行が表示されます。おそらくそれらのせいで問題があります。

次に、/で最大のフォルダーを確認しました。 /rootです:

/# Sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/Nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total
20
Maxim Yefremov

ラボマシンで同じ問題に遭遇し、このコマンドを使用していました

du -sch .[!.]* * |sort -h

ユーザーがまだ削除していないゴミ箱の中にあるような隠しファイルを見つけることができました。

here が最初にこの答えを見つけた場所のおかげです。

13
Matt G.

プロセスによってまだ開かれたままになっている削除済みファイルを確認します。
Sudo lsof | grep deleted | less

Pidとファイル記述子が表示されます。サーバーでこの問題が発生しました。ncduには何もありませんが、ディスクがいっぱいです。マウントされたsamba共有にファイルを移動する夜間のプロセスであることが判明し、ファイルハンドルが正しく閉じられないことがあったようです。

削除されたファイルを見つけて、それらをクリーンアップしたい場合は、それが受け入れられる場合、おそらく再起動が最も簡単です。または、プロセスを強制終了してみてください。または、それらが使用されていないことが確実な場合は、次のように手動でゼロにすることができます:
> /proc/14487/fd/12

4
Alric

次のコマンドは、-max-depth = 1で/ homeディレクトリのディスク使用率を表示します

user@linux:~$ Sudo du -h -d 1 /
4

必ずディスクマウントを確認してください。ここで私が見た解決策はどれも、その上にマウントが置かれているフォルダーによって占有されているスペースを識別することができません。

2
Rich Remer

これと同じ問題が発生し、var/lib/dockerに保存されたdockerイメージであることが判明しました

ncduはユーザーには表示されないため、これらをリストしません。 Sudoでncduを実行しても解決しません。

このコマンドは、既存のすべてのdockerイメージを削除します...

docker rmi $(docker images -a -q)

1
Baldy

次のコマンドを実行して、上位10個の最大ファイルを見つけることができます。

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
0
ema