Не удаляются старые сессии mod-tmp

Харизма
На сайте с 17.06.2009
Offline
112
5633

Здравствуйте Спецы, помогите пожалуйста решить задачу..

Имею VPS с Debian + ISP

Проблема с тем, что не чистятся самостоятельно файлы сессий в папке в mod-tmp. Из за чего там скапливается на много гигабайт этих мусорных файлов, и система начинает жутко тормозить.

Проблему решаю самым дурацким методом, создаю новую папку и переименовываю ее в mod-tmp. Но место конечно на диске уменьшается, и удалять папки такие очень сложно...

Поиск по интернету показал, что это одна из проблем именно Debian с ISP. И необходимо изменить файл очистки по крону.

Но что конкретно нужно дописать.... перерыл уже наверно пол интернета, но это так и осталось загадкой...(

Насколько понимаю, сам крон задается здесь: /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

А это папки, где скапливаются файлы:

/var/www/01/data/mod-tmp

/var/www/02/data/mod-tmp

Может ли кто-нибудь подсказать как правильно изменить, что дописать в файлик php5 ?

П.С. Имею у другого хостера еще один ВПС с CentOS , там такой проблемы никогда не было. Знал бы, что с Debian такое чудо выйдет, никогда бы не поставил. но новый хостер посоветовал поставить именно debian как наилучшую совместимость c isp.. да уж... наилучшая...

L
На сайте с 13.01.2011
Offline
125
#1

обращайтесь , решу вашу проблему

Контакты-icq 535609 ()
Оптимизайка
На сайте с 11.03.2012
Offline
396
#2

Чтобы удалить тыщщи файлов из папки, используйте команды

find /var/www/01/data/mod-tmp -type f -delete

find /var/www/02/data/mod-tmp -type f -delete

затем в cron файлах поправьте путь к папкам сессий, вместо /var/lib/php5/ напишите /var/www/01/data/mod-tmp и продублируйте эту строку полностью для каждой нужной папки

перезапустите cron: service cron reload

profit!

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
L
На сайте с 13.01.2011
Offline
125
#3
Оптимизайка:

затем в cron файлах поправьте путь к папкам сессий

можно сделать все гораздо проще

Харизма
На сайте с 17.06.2009
Offline
112
#4

Оптимизайка, Спасибо большое за подсказку ( команду удаления файлов), ночью почищу файлы ...

по поводу крона не совсем вас понял... просто заменить /var/lib/php5/ на /var/www/01/data/mod-tmp ?.. а как же вспомогательный "maxlifetime" , который как я понимаю обращается к php.ini. Он будет искаться в папке mod-tmp ?

Видимо эту переменную ( +$(/usr/lib/php5/maxlifetime ) нужно удалить...

Logger, спасибо большое за предложение помощи, но хотелось ее именно на форуме.... ну да ладно...

Вообщем вопрос решил.

Хотел бы оставить на всякий случай варианты решения, мало ли может еще кому то понадобиться и он найдет эту тему.

В связке Debian и ISP проблему mod-tmp можно решить следующим образом:

1. Выставив в php.ini ( находится /etc/php5/apache2 ) на против директивы session.gc_probability = значение 1, вместо 0.

или

2. В файле /etc/cron.d/php5 добавить строку

9,39 *  	* * *  	root find /var -wholename "*/data/mod-tmp/*" -type f -cmin +120 -print0 
| xargs -r -0 rm
.

П.с. пока писал , пришло личное сообщение от Andreyka , который предложил решение, которое я описал в первом пункте.

Andreyka, большое человеческое спасибо. Теперь я уверен, что выбрал правильный путь решения.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий