web-dev-qa-db-ja.com

gitは「デバイスに空き容量がありません」と報告しますが、df -hは2.5Gが利用可能であると言います

Ubuntu 14.04を実行しているEC2ノードがあります。今朝のデプロイで、git fetchから次のエラーメッセージが表示されました。

error: unable to create temporary file: No space left on device

サーバーにログインしましたが、df -hは十分なスペースがあることを示しています。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            492M   12K  492M   1% /dev
tmpfs           100M  488K   99M   1% /run
/dev/xvda1      7.8G  4.9G  2.5G  67% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            497M  4.0K  497M   1% /run/shm
none            100M     0  100M   0% /run/user

ここでdfを誤解していますか? EC2の/ tmpは/ dev/xvda1に常駐していると私は理解していますが、おそらく間違っているのでしょうか?

3
Rjak

システムのiノードを確認します。

root #df -i /

使用率が100%に近づいている場合は、

xdiskusage /

Iノードを占有しているものを見つける。

残念なことに、いったんファイルシステムが作成されると、ファイルシステムのiノードの数を増やす方法はありません。

Resize2fsでiノードの数を拡張できるLVMを除く

参照先: 十分な空き容量があるにもかかわらず、デバイスに空き容量がない

5
Edward Chan JW
  1. 一部のアプリケーションが膨大な数の小さなファイルを作成し、iノードを完全に使い果たしている可能性があります。このような不正なアプリケーションを探して、不要なファイルを削除する可能性があります。

  2. Iノードの制限を動的に増やすことはできませんが、LVMを使用している場合は、ボリュームのサイズを増やすことを検討してください。そうでない場合は、バックアップを取り、より高いiノードの制限を指定して新しいファイルシステムを作成します。

0
Supratik

Findコマンドを使用して、バルクファイルを含むディレクトリを検索し、ur標準に基づいてクリーンアップを実行できます

find /dev/xvda1 -type f -size +1M -exec ls -ltrh {} \;そして、クリーンアップを実行する必要がある場所またはディレクトリを見つけたら、そのディレクトリパスをソースに渡し、クリーンアップを実行します。

find /dev/xvda1/dummy -type f -size +1M -mtime +120 -exec rm -rf  {} \;

上記で、私はダミーと呼ばれるディレクトリから120より古いファイルを削除しています

0
ankitkhanduri