Не поверите, но в обычной директории файлы сессий тоже удаляются "руками" +)
root@master:~# cat /etc/cron.d/php5
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete
Я предпочитаю что то такое:
root@host:~# cat /usr/bin/clear_sess.sh
#!/bin/bash
/usr/bin/find /var/lib/php52 -mmin +XXX -delete -print
# где XXX - количество минут (правда, у меня в днях mtime).
И в кроне потом запускаю через flock:
flock -n /tmp/clear-sess.lock -c /usr/bin/clear-sess.sh