#!/usr/bin/perl use strict; use warnings; use lib '/home/raj/perl5/lib/perl5'; use DBI; use Config::Tiny; use Data::Dumper; use CGI::Session::ExpireSessions; use constant DAYS => 1; # print 'Removing sessions that are more than '.DAYS." days old:\n"; my $path_to_app_root = '/home/raj/www/apps/HMDS/trunk'; # || die "Couldn't find path to application directory"; # warn $path_to_app_root; my $config = Config::Tiny->read("$path_to_app_root/config/settings.txt"); # $self->debug($config); my %settings = %{ $config->{global} }; # warn Dumper \%settings; exit; my %args = ( delta => DAYS * 24 * 60 * 60, # seconds # delta => 2, # use for testing -- expire sessions that haven't been accessed in 2 seconds verbose => 1, cgi_session_dsn => { # match method in CGI_SESSION_OPTIONS db => "driver:mysql;serializer:$settings{db_session_serializer}", file => "driver:File;serializer:$settings{file_session_serializer}", }, dsn_args => { db => { DataSource => "dbi:mysql:database=$settings{development_db}", User => $settings{db_user_id}, Password => $settings{db_password}, }, file => { Directory => $path_to_app_root.'/sessions', # NoFlock => '', # Umask => '', } }, ); # database sessions table: CGI::Session::ExpireSessions->new( delta => $args{delta}, verbose => $args{verbose}, dsn_args => $args{dsn_args}->{db}, cgi_session_dsn => $args{cgi_session_dsn}->{db}, )->expire_sessions; # sessions directory: CGI::Session::ExpireSessions->new( delta => $args{delta}, verbose => $args{verbose}, dsn_args => $args{dsn_args}->{file}, cgi_session_dsn => $args{cgi_session_dsn}->{file}, )->expire_sessions;