Railsのセッションファイル削除スクリプト

最近、プログラムを書くばかりで環境面・運用面のことを考えていないことが多いです。昨日も、tmpディレクトリに大量のセッションファイルが残存しているのことを発見!。Railアプリの運用については考慮すべき問題のようです。しかし約二ヶ月間放置でこんなになるとは.../var/tmp/~とはいえもちろん、使用ディスク容量にしっかりカウントされていました。

とりあえず、二日前までのセッションファイルは削除ということで以下のスクリプトで対処しました。/var/tmp以下はいろんなユーザのいろんなファイルがあるようでFile.owned?()が必要でした。

#!/usr/bin/ruby
require 'parsedate'
tt = Time.now - ((24 * 60 * 60)*2)
Dir.glob("/var/tmp/ruby_sess*").each { | f |
  if File.owned?(f)
    ft = Time.local(*ParseDate.parsedate("#{File.stat(f).ctime}")[0..-3])
    if ft < tt
      p  "deleted file #{f}:#{ft.to_s}"
      File.delete(f)
    end
  end
}

後は、cronにでも仕込んで運用します。そういえば、ログファイルも放置してた...

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/86

Comments