トップ «前の日記(2013/04/02 (火) ) 最新 次の日記(2013/04/04 (木) )» 編集 RSS feed

HsbtDiary


2013/04/03 (水) [長年日記]

[tmp] /tmp に消えたら困るデータを入れてはいけない

"cache ディレクトリに消えたら困るデータを入れてはいけない" は tDiary のお約束。

この前から tmpwatch を使って /tmp のデータを 3:00 に消すようにしていたのだけど、それ以降、nginx と atig がちょうど 3:00 を境目に動かなくなってしまった。

なんだろうなーと調べてみたら、

  • nginx は proxy_temp_path が /tmp を使っていた。
  • atig は tweets を sqlite として /tmp/atig に保存していた。

というのが原因だった。nginx の方はディレクトリを /var/tmp/nginx に移動、atig も同様にテンポラリディレクトリを指定可能に変更してから /var/tmp/atig に移動して解決した。とほほ。

[atig] atig-0.3.12 リリース

--tmpdir オプションを追加して、sqlite の db ファイルを任意の位置に保存可能にしました。無指定の場合はこれまで通り Dir.tmpdir が使われます。

なお、atig は今も Twitter API 1.1 に対応してないので、5/8 になるとリスト機能などは確実に死にます。皆さんふるって patch 作成をしてください。よろしくお願いします。

本日のツッコミ(全7件) [ツッコミを入れる]
# smbd (2013/04/03 (水) 22:46)

「/tmpに再起動後も残ってるのを期待するデータを残しちゃいけない」のはそうだと思うけど、ソフトが動いている時に外部から消去されるのを想定しなきゃいけないっていうのは酷だと思うけどなぁ。<br>それってsocketとかも消されうるわけで…。<br>消す側のtmpwatchの設定が間違ってるとおもうですよ

# hsbt (2013/04/04 (木) 06:45)

socket とかそういうのは /var/run とか /var/tmp とかそういうのを使うと思っていたんですが、そうでも無かったりするんでしょうか。

# tokuhirom (2013/04/04 (木) 07:33)

わりと unix socket を /tmp におく人おおい気がしますね。

# eban (2013/04/04 (木) 10:03)

ssh-agentが/tmpに作りますねえ。

# hsbt (2013/04/04 (木) 11:56)

確かに mysql.sock があった。これは atime が変わっているからかなあ。tmpwatch の設定がアレな気もしてきた。

# jmuk (2013/04/04 (木) 12:54)

GNU screenやtmuxもセッション情報を/tmpに置いてませんでしたっけ?

# rhykw (2013/04/05 (金) 12:02)

webistrano+rsync_with_remote_cacheしてて、local_cacheを/tmp上に置いてたらおかしなことになりました。