web-dev-qa-db-ja.com

Amazon EC2-ディスクがいっぱいです

Amazon EC2サーバーでdf -hを実行すると、これが出力になります。

[ec2-user@ip-XXXX ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             25G   25G     0 100% /
tmpfs                 4.0G     0  4.0G   0% /dev/shm

何らかの理由で何かが私のストレージスペースを使い果たしています。

私はすべての大きなファイル/フォルダを見つけようとしていますが、これは私が返すものです:

[ec2-user@ip-XXXX ~]$ Sudo du -a / | sort -n -r | head -n 10
993580  /
639296  /usr
237284  /usr/share
217908  /usr/lib
206884  /opt
150236  /opt/app
150232  /opt/app/current
150224  /opt/app/current/[deleted].com
113432  /usr/lib64

収納スペースを食べているものを見つけるにはどうすればよいですか?

44
Dan Revah

巨大なファイルが見つからない場合は、いくつかのプロセスを殺すと問題が解決する場合があります(私にとってはうまくいきました。理由を知るために完全な答えを読んでください)

以前:

/dev/xvda1 8256952 7837552 0 100%/

/dev/xvda18256952 1062780 6774744 14%/

理由:rm <filename>プロセスによって開かれているファイルでは、実際にはファイルは削除されず、プロセスはまだファイルに書き込みを行っている可能性があります。これらのゴーストファイルは、findコマンドで見つけることも、削除することもできません。次のコマンドを使用して、削除されたファイルを使用しているプロセスを確認します。

lsof +L1

マシンを再起動するか、プロセスを強制終了してファイルを解放します。

これを読む: https://serverfault.com/questions/232525/df-in-linux-not-showing-correct-free-space-after-file-removal/232526

18
user18853

/、タイプdu -hs * as root

$ Sudo su -
cd /; du -hs *

すべてのフォルダーのフルサイズが表示され、より大きなフォルダーが識別されます。

10
Ricardo Martins

このスペースはメール通知によって消費されます

入力して確認できます

Sudo find / -type f -size +1000M -exec ls -lh {} \;

1000MBを超える大きなフォルダーが表示されます

結果にはフォルダーがあります

/var/mail/username

次のコマンドを実行して、そのスペースを解放できます

> /var/mail/username

大なり記号(>)はプロンプトではないので、それを使用してcmdを実行する必要があることに注意してください。

次に、空き容量を確認します

df -h

これで十分な空き領域ができました。お楽しみください... :)

ansh0lの答えは、大きなファイルを見つける方法です。ただし、ファイルシステムの各ディレクトリがどれだけのスペースを消費しているかを確認するには、cdでルートディレクトリに移動し、du -k --max-depth= '。これにより、ルートディレクトリ内の各サブディレクトリで使用されているスペースの量がわかります。犯人を見つけたら、そのディレクトリにcdし、同じコマンドを再度実行し、すべてのスペースを消費しているファイルが見つかるまで繰り返します。

2
mti2935

ファイルシステムに対するスナップショットがある場合、使用状況はO/Sに表示されません。

そのため、スナップショットを長くするほど、現在のボリュームで消費するディスクが増えます。スナップショットを削除すると、不足しているディスク容量が再起動します。

0
Stevie