Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- class MysqlRailsSessionCleaner
- require 'rubygems'
- require 'mysql'
- DB_USER = 'user'
- DB_PASS = 'pass'
- DB_HOST = 'host'
- DB_DEFAULT = 'mysql'
- LOG_PATH = '/var/log'
- def self.purge_sessions
- log_info = ""
- db = Mysql.real_connect(DB_HOST, DB_USER, DB_PASS, DB_DEFAULT)
- res = db.query("SHOW DATABASES;")
- while row = res.fetch_row do
- db.select_db("#{row[0]}")
- table_res = db.query("SHOW TABLES LIKE 'sessions';")
- while table = table_res.fetch_row do
- if table[0] == 'sessions'
- db.query("DELETE FROM sessions WHERE updated_at < (CURRENT_TIMESTAMP - INTERVAL 3 HOUR)")
- log_info << "Deleted #{db.affected_rows} records from #{row[0]}\n"
- end
- end
- end
- db.close
- # log the info
- File.open( "#{LOG_PATH}/session_cleanr_log", "a" ) do |the_file|
- the_file.puts "\n===== LOG CLEANSE #{Time.now} ====\n"
- the_file.puts "#{log_info}"
- the_file.puts "\n"
- end
- rescue Exception => ex
- puts ex
- end
- end
- MysqlRailsSessionCleaner::purge_sessions
Add Comment
Please, Sign In to add comment