В комментариях к конфигу в Debian 5 Lenny сказано следующее:
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm
Как можно понять из текста, за время жизни файлов сессий отвечает переменная session.gc_maxlifetime, которая стандартно выставлена в 1440 секунд или 24 минуты. Также для определения этого промежутка на основе значений, заданных в системных php.ini, в Debian есть служебный скрипт:
/usr/lib/php5/maxlifetime
24
Все хорошо и прекрасно. Да, отчасти. А что будет, если кто-то из авторов CMS написал такую систему авторизации пользователей, которая работает на таких вот сессиях и, например, именно по ним проверяет залогиненость пользователя? Правильно, его вышибет. Думаете никто так не сделает? Ошибаетесь: http://php.net/manual/en/ref.session.php
Итого, резюмирую - лично я эту папку чистить буду не чаще раза в 2 недели (ну по крайней мере GMail и Yandex.Mail меня примерно через это время выкидывают и заставляют повторно авторизироваться), это самый безопасный путь. Других нету, увы.
find /var/lib/php5 -name "sess_*" -type f -mtime -30 -delete
ReplyDeleteВ крон.
0 1 * * * find /var/lib/php5 -name "sess_*" -type f -mtime -30 -delete
ReplyDeleteВот так более правильней )