aws

/tmpがいっぱいで画像アップロード失敗!原因とcron自動メンテナンス設定を完全解説

かに

はじめに

WordPress で突然「画像を保存できません」と出たら要注意。原因は RAM 上の /tmp(tmpfs) がいっぱいになり、一時ファイルを書けなくなるケースが多数です。本記事では

  1. エラー原因の特定方法
  2. 手動復旧手順
  3. cron で毎日 4:00 に自動掃除する設定
  4. VS Code で安全に crontab -e を開く方法

をまとめて解説します。


1. 症状と原因

unable to write file `/tmp/resizedXXXX.webp' @ error/constitute.c/WriteImage/1348
  • ImageMagick/GD が /tmp に一時ファイルを書けず失敗
  • df -h /tmp を確認すると Use%100% になっている

2. 応急復旧:手動で /tmp をクリーン





# 24 時間以上アクセスのないファイルを削除
sudo find /tmp -mindepth 1 -xdev -atime +1 -exec rm -rf {} +
# 空き容量を確認
df -h /tmp

注意
/tmp ディレクトリ自体は削除しないこと。中身だけを掃除します。


3. 再発防止:cron で毎日 4:00 に /tmp 掃除

手順 1 – cron ファイル作成

sudo vi /etc/cron.d/tmpfs-clean

手順 2 – 以下を貼り付けて保存

# /etc/cron.d/tmpfs-clean
# 毎日 04:00 JST に /tmp 配下の 24h 超過ファイルと空ディレクトリを削除
0 4 * * * root find /tmp -mindepth 1 -xdev -atime +1 -exec rm -rf {} +

手順 3 – 権限を整える

sudo chmod 644 /etc/cron.d/tmpfs-clean

手順 4 – cron 動作確認






4. VS Code で crontab -e を快適に編集する

# 一時的に VS Code をエディタに設定
export VISUAL="code --wait"
crontab -e
  • --wait を付けることで VS Code を閉じるまで crontab が保存を待機
  • 恒久化したい場合は ~/.bashrc に同じ行を追記し source ~/.bashrc

5. 毎日 reboot する必要は?

  • /tmp 掃除だけでメモリは十分空く
  • 毎日再起動はダウンタイムを伴い可用性を下げるため 推奨されない
  • カーネルアップデートなど特別な場合のみ sudo reboot

まとめ

  • 画像アップロードエラーは /tmp 満杯 が原因のことが多い
  • 手動クリーンで復旧 → cron で 自動掃除 して再発防止
  • crontab -eVS Code + –wait で安全に編集可能
  • 不要な毎日 reboot は避けて安定運用を目指そう!

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

記事URLをコピーしました