質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

3380閲覧

【AWS(EC2)】cannot create temp file for here-documentというエラーの対処法

gogoackman3

総合スコア109

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/01/09 12:28

編集2018/01/09 12:54

###発生している問題

AWSのEC2をサーバーとして使用した画像投稿サービスを運用していて、突然新しい投稿が出来なくなりました。

そこでSSHでEC2にログインすると、以下のようなエラーが表示されました。

/home/○○/.rbenv/libexec/rbenv-init: line 131: cannot create temp file for here-document: No space left on device

###問題を把握するために自分でやった事

EC2の容量が足りなくなったのだと思い、df -hコマンドで確認すると以下のようになりました。

ターミナルに表示された結果

ここまではOKなのですが、具体的にどこのパスにあるファイルが逼迫しているのか掴めません。/dev/xvda1が100%になっているようだったので、試しに/devに移動して中を見た所以下のようになっていました。

![/devの中のファイル]

/dev/xvda1はフォルダではなかったので、vimで開いて中を見たのですが、何もありませんでした。

###聞きたい事

①どこのフォルダにあるファイルを消せば良いのでしょうか?
②こういった事が再発するのを防止するために定期的にtempファイルを削除することは出来ないでしょうか?

もしお分かりの方がいらっしゃれば教えて頂けると幸いです。

###追記

nginx.error.logの中身を見ると以下のエラーが確認できました。

2018/01/09 20:53:20 [alert] 12491#0: *6066236 write() to "/var/www/rails/○○○/log/nginx.access.log" failed (28: No space left on device) while logging request, client: △△△, server: ○○○.jp, request: "GET /articles/305 HTTP/1.1", upstream: "http://unix:/var/www/rails/○○○/tmp/sockets/puma.sock/articles/305", host: "○○○.jp" 2018/01/09 20:54:21 [alert] 12491#0: *6066249 write() to "/var/log/nginx/access.log" failed (28: No space lef

ただ、以前同じエラーに見舞われた際にproduction.rbに以下のようなコードを追加して問題がなくなった経験があります。

config.logger = Logger.new("log/production.log", 5, 10 * 1024 * 1024)

今回の場合、上記に加え、以下のようなコードも追加すれば良いのでしょうか?

config.logger = Logger.new("nginx.access.log", 5, 10 * 1024 * 1024)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

サーバーの/(root)ファイルシステムの空容量がありません。
問題のサーバーでは、/varなども/配下にありますので、/var/logなどにある不要ファイルを削除して下さい。

投稿2018/01/09 13:44

編集2018/01/09 13:46
hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

あるサイズ以上のファイルはfindコマンドで見つけることができます。
たとえば、1GB以上のファイルなら、以下のような感じです。

bash

1sudo find / -size +1G -print | less

投稿2018/01/09 14:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gogoackman3

2018/01/09 23:50

ありがとうございます。取り急ぎ、nginxのアクセスログが重たいのがわかって、手動削除して対応しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問