takuowake
@takuowake (takuo wake)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

No space left on device -ファイルの消し方-

解決したいこと

コマンドのエラーメッセージを解決したい。

No space left on device

df -h を実行すると、データが多い箇所が見つかったのですが、このデータを消去する方法がわかりません。

ec2-user:~/environment/todo_app (master) $ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        474M     0  474M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  544K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       10G   10G   16K 100% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0

自分で試したこと

sudo rm -rf /dev/xvda1/

消してみようと試みましたが、やり方が間違っているのか消すことができませんでした。

0

2Answer

/dev/xvda1/はファイルシステムなので rm コマンドで直接消せなかったはず。
sudo du / | sort -n
を実行してするとサイズ順にファイル一覧を作成するので、
大きいサイズのファイルをみつけて
不必要そうなファイルを削除するのが良いのではないでしょうか。

1Like

Comments

  1. @takuowake

    Questioner

    ご回答いただきありがとうございます。
    容量の見やすいファイル一覧を作成することができました。

@Shiro-neko-kamen さんのおっしゃるとおり sudo du / | sort -n で大きなファイルは探せますが、 sudo rm -rf /dev/xvda1 を試した様子からすると(下手するとハードディスクを丸ごと消去するところでしたよ)どれが不要か判断するのは難しいでしょうから、確実に消せるキャッシュから手をつけるのがよさそうです。

todo_app が https://github.com/takuowake/todo_app のことなら、とりあえず ~/environment/todo_app/node_modules は安全に消せます。また Composer のキャッシュは php composer.phar clear-cachecomposer clear-cache を実行すれば消せます。

1Like

Comments

  1. @takuowake

    Questioner

    ご回答いただきありがとうございます。
    キャッシュを無事消すことができました。

    「どれが不要か判断するのは難しいでしょうから」
    おっしゃる通りでございます。加えて一つご質問させていただきたいのですが、
    どれが不要なファイルかを自分で判断できるようになるには、何を意識してアプリケーション開発にいそしむべきでしょうか?
  2. 初めて使うツールはマニュアルをしっかり読んで動作をイメージできるようにすることでしょうかね。いくつか覚えると、似たツールは同じようなパターンで動くことがだんだん分かってくると思います。

    たとえば npm は(大雑把にいえば)インターネットから JavaScript のソースコードをダウンロードしてきて手元で使えるようにするパッケージマネージャです。ダウンロードしてきた圧縮ファイルは ~/.npm/ にキャッシュされ、取り出したソースコードはプロジェクトの node_modules/ に配置されます。 Composer も PHP のパッケージマネージャで、キャッシュを ~/.composer/ に置いてソースコードを vendor/ に配置します。

    そうだとすると、他の言語の同様なツール xxx もキャッシュを ~/.xxx/ に置いてソースコードをプロジェクトのどこかに配置しそうだと予想できるのではないでしょうか。親切なツールならキャッシュを消すコマンドを用意している(たとえば `npm cache clean` や `composer clear-cache` )とも分かってくるでしょう。コマンドがなくても「ツール名 clear cache」でググればたいてい誰かが消し方を書いています。

    また、別の切り口では、典型的な不要ファイルの種類とその場所を知ることも重要ですね。代表的な不要ファイルは一時的な作業用ファイル、ログファイル、中間成果物ファイルなどです。一時ファイルは慣習的に /tmp/ か (/usr/local)/var/xxx/ か ~/.xxx/ に置かれがちですし、ログファイルは (/usr/local)/var/log/ か ~/.xxx/ で、中間成果物ファイルはプロジェクト内のどこかにあることが多いです。逆にいえば、それらの場所にあるファイルは消せる可能性があるということです。ファイルの要不要が判断できなければ、ファイル名でググってみて役割を調べるといいでしょう。

Your answer might help someone💌