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
収納スペースを食べているものを見つけるにはどうすればよいですか?
巨大なファイルが見つからない場合は、いくつかのプロセスを殺すと問題が解決する場合があります(私にとってはうまくいきました。理由を知るために完全な答えを読んでください)
以前:
/dev/xvda1 8256952 7837552 0 100%/
今
/dev/xvda18256952 1062780 6774744 14%/
理由:rm <filename>
プロセスによって開かれているファイルでは、実際にはファイルは削除されず、プロセスはまだファイルに書き込みを行っている可能性があります。これらのゴーストファイルは、findコマンドで見つけることも、削除することもできません。次のコマンドを使用して、削除されたファイルを使用しているプロセスを確認します。
lsof +L1
マシンを再起動するか、プロセスを強制終了してファイルを解放します。
/
、タイプdu -hs *
as root
:
$ Sudo su -
cd /; du -hs *
すべてのフォルダーのフルサイズが表示され、より大きなフォルダーが識別されます。
このスペースはメール通知によって消費されます
入力して確認できます
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し、同じコマンドを再度実行し、すべてのスペースを消費しているファイルが見つかるまで繰り返します。
ファイルシステムに対するスナップショットがある場合、使用状況はO/Sに表示されません。
そのため、スナップショットを長くするほど、現在のボリュームで消費するディスクが増えます。スナップショットを削除すると、不足しているディスク容量が再起動します。