Очистка от временных файлов и кэша PHP сессий на сервере Debian
Работающий сервер постоянно забивается временными файлами (PHP сессии, кэш пакетов и пр), и это, помимо того что занимает место, тормозит сервер.
Давайте сначала проверим, а сколько же места всего на сервере и сколько осталось:
df -h
сколько файлов:
df -i
сколько файлов в определенной папке (пример если стоит nginx + apache2 mtk, то файлы сессий хранятся в tmp)
ls -R /var/www/*/tmp | wc -l
ls -R /var/www | wc -l
Если нужно вывести список папок и количество в них файлов, для ознакомления и понимания общей картины:
cd /var/www
for D in `ls -Fl | grep / | awk '{print $9}'` ;
do echo $D `find $D -type f -print | wc -l` ;
done
Самый простой способ удалить временные файлы (при большой посещаемости их может быть миллионы, а удаление может занять до 10 часов):
find /var/www/*/data/mod-tmp -name "sess_*" -type f -exec rm {} \
Потом можно добавить эту строчку в крон.
А чтобы ручками не делать, есть простое решение:
в php.ini снять комментарий на строчку
;session.gc_probability = 0
должно выглядеть вот так:
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
Сессии тогда автоматически будут сами удаляться каждые 24 минуты (session.gc_maxlifetime = 1440)
Если У вас привязаны скрипты к сессиям, то поменяйте этот параметр. Он стоит в секундах.
Так же можно сделать изменения в кроне.
Добавить в скрипт /etc/cron.d/php5 к строке код:
Найти:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
Ниже добавить:
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/www ] && /usr/bin/find /var/www/ -regextype posix-egrep -regex '.*/sess_[a-f0-9]{32}$' -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
- CMS.BIZ.UA - Качественная раскрутка и продвижение сайтов.