<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=CleanupSessions</id>
	<title>CleanupSessions - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=CleanupSessions"/>
	<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=CleanupSessions&amp;action=history"/>
	<updated>2026-08-21T23:30:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=CleanupSessions&amp;diff=513&amp;oldid=prev</id>
		<title>Admin: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=CleanupSessions&amp;diff=513&amp;oldid=prev"/>
		<updated>2016-04-06T20:03:25Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= rt-clean-sessions =&lt;br /&gt;
&lt;br /&gt;
Starting from RT 3.8, to cleanup sessions, it has been provided the tool :&lt;br /&gt;
&lt;br /&gt;
 sbin/rt-clean-sessions&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
dedicate to this task. This make obsolete all the other solutions down there, and avoid the duplication of the the db credentials.&lt;br /&gt;
&lt;br /&gt;
= Perl =&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s a simple perl script that you can run from cron nightly to clean up your sessions table. It will blow away any user sessions that haven&amp;#039;t been touched in the last 24 hours.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/usr/bin/perl&lt;br /&gt;
 use lib qw(/opt/rt3/lib);&lt;br /&gt;
 use RT;&lt;br /&gt;
 RT::LoadConfig();&lt;br /&gt;
 RT::Init();&lt;br /&gt;
 $RT::Handle-&amp;amp;gt;SimpleQuery(&amp;quot;delete from sessions where LastUpdated &amp;amp;lt; (now() - interval 24 hour)&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With postgresql 7.4.6 and 7.4.5 this worked where the above did not.&lt;br /&gt;
&lt;br /&gt;
 $RT::Handle-&amp;amp;gt;SimpleQuery(&amp;quot;delete from sessions where LastUpdated &amp;amp;lt; (now() - &amp;#039;24 hour&amp;#039;::interval)&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
To avoid full table scan on that table could be nice to add an index on the [[LastUpdate]] field.&lt;br /&gt;
&lt;br /&gt;
 create index LastUpdated on sessions (LastUpdated);&lt;br /&gt;
&lt;br /&gt;
= SQL =&lt;br /&gt;
&lt;br /&gt;
Just a little info from the irc channel, in case you want to clean up session regularly, as you should:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; this also seemed a bit odd:&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; mysql&amp;amp;gt; select count(id) from sessions;&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; +-----------+&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; | count(id) |&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; +-----------+&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; |    133683 |&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; +-----------+&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; 1 row in set (5.24 sec)&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; ouch&lt;br /&gt;
 &amp;amp;lt;oliof&amp;amp;gt; huh?&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; must not prune your sessions regularly&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; delete from sessions;&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; in cron every night&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; done&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; ok, wiping session table entries now...&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; I do mine nightly to force my users to relogin the next day anyway&lt;br /&gt;
 &amp;amp;lt;rrindels&amp;amp;gt; In fact I&amp;#039;m not sure if any part of RT&amp;#039;s module base deals with&lt;br /&gt;
           session pruning&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; ok; wiped session table content&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; query builder is now _instant_&lt;br /&gt;
 &amp;amp;lt;ward&amp;amp;gt; adding nightly cron job now :)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>