当ブログで詳細ページを開いたら、突然
fatal: write error: No space left on device
というエラーが発生して詳細ページが見れなくなった。
話を進める前に環境を載せておく
サーバ:さくらVPS 1G + NFS 100G
OS:Ubuntu 20.04
デバイスには新たに書き込む容量がないというエラーであるそうだ。
No space left on device とエラーが出るときの対処法 - Qiitaという記事でデバイスの使用状況を確認できるコマンドの「df -i」があるというので試してみるも、圧迫しているディレクトリは発見出来ず。
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on udev 118539 423 118116 1% /dev tmpfs 125584 655 124929 1% /run /dev/vda3 1703936 172671 1531265 11% / tmpfs 125584 1 125583 1% /dev/shm tmpfs 125584 4 125580 1% /run/lock tmpfs 125584 18 125566 1% /sys/fs/cgroup 192.168.1.2:/export 98566080 9504 98556576 1% /var/www/html/site/storage tmpfs 125584 21 125563 1% /run/user/1001
※IUseの値が100%のところがあるか確認
どうしようかと他の解決方法を探していたら、fatal: write error: No space left on device が出た場合は、不要ファイルを削除する - Qiitaでログファイルが圧迫していたという内容があったので、この記事に記載されているログの削除を試してみたら、ページが表示できないという症状は解決した。
試したコマンド
$ sudo rm -rf /tmp/* $ sudo rm -rf /var/log/*
何のログが圧迫していたのか?といった重要なことを確認するのを忘れたのを悔やまれるが、これから高アクセスのサーバをお守りする機会が増えていくだろうから、この問題は多発していくはず。
サイトを運営していて、ログファイルは直近で1週間ぐらいしか辿らないなということで、ログファイルの寿命を減らす事が出来ないか?と調べてみると、ログファイルの肥大化、喪失を防ぐ | Linux Magazineという記事にたどり着き、ログファイルを保持する期間を設定できることがわかった。
取り急ぎ、apache2のログの保持する期間を変更することにしてみた。
$ sudo nano /etc/logrotate.d/apache2
rotateの値を14から7に変更してみた。
rotateの数値はdailyだったので、2週間(14日)から1週間(7日)に変更したことになる。
また冒頭のエラーが発生した時に何のログでエラーになっていたか?を確認しよう。