当ブログで詳細ページを開いたら、突然

fatal: write error: No space left on device

というエラーが発生して詳細ページが見れなくなった。


話を進める前に環境を載せておく

サーバ:さくらVPS 1G + NFS 100G

OS:Ubuntu 20.04

さくらのVPSで追加ストレージ(NFS)を利用してみた


デバイスには新たに書き込む容量がないというエラーであるそうだ。

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日)に変更したことになる。


また冒頭のエラーが発生した時に何のログでエラーになっていたか?を確認しよう。

Logrotate - ArchWiki