We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Очистка пользовательских tmp
Очистка пользовательских tmp
Здравствуйте.
Искал тему вроде бы нет ответа на такой вопрос.
Почему не удаляются старые файлы сессий (с именами sess_*) из пользовательских временных папок tmp/ ?
У меня на сервере они захламляются и там их становится 100-тни тысяч файлов на пользователя и лежат месяцами...
Как я почитал вроде сама пхп может собирать мусор только с основной папки /tmp/ общей, а если заданны пользовательские директории то он их чистить не будет, и нужно чистить мануально.
Есть ли в панели какие либо механизмы для этого? Или они и так должны чиститься?
Искал тему вроде бы нет ответа на такой вопрос.
Почему не удаляются старые файлы сессий (с именами sess_*) из пользовательских временных папок tmp/ ?
У меня на сервере они захламляются и там их становится 100-тни тысяч файлов на пользователя и лежат месяцами...
Как я почитал вроде сама пхп может собирать мусор только с основной папки /tmp/ общей, а если заданны пользовательские директории то он их чистить не будет, и нужно чистить мануально.
Есть ли в панели какие либо механизмы для этого? Или они и так должны чиститься?
Re: Очистка пользовательских tmp
В самой панели - нет.
Сессии удаляются средствами php, для этого есть соответствующая настройка в php.ini
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
Сессии удаляются средствами php, для этого есть соответствующая настройка в php.ini
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
Re: Очистка пользовательских tmp
Оно то так, но в самой пхп.ини сказано что мусорщик пхп не работает при кастомных сессийных директориях и нужно это вручную делать
И кстати в debian по умолчанию в php.ini мусорщик вообще выключен и gc_probability установлен в 0, как я выяснил debian использует собственный чистильщик но тоже только для общей директории не кастомной...
Вот было интересно как остальные пользователи панели справились с этой проблемой очистки мусора.
Наверное нужно писать скрипт который проходится по всем пользовательским дирикториям и чистит этой командой? find /home/$user/tmp -cmin +24 -type f | xargs rm
Code: Select all
; 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):
; find /path/to/sessions -cmin +24 -type f | xargs rm
Вот было интересно как остальные пользователи панели справились с этой проблемой очистки мусора.
Наверное нужно писать скрипт который проходится по всем пользовательским дирикториям и чистит этой командой? find /home/$user/tmp -cmin +24 -type f | xargs rm
Re: Очистка пользовательских tmp
Проблем с переполнением не возникало при этих настройках. Сайты магазинов используют сессии.
Смешнее было на ISPManagere, где maxlifetime не прикручен был - там действительно пришлось скриптом удалять.
Смешнее было на ISPManagere, где maxlifetime не прикручен был - там действительно пришлось скриптом удалять.
Re: Очистка пользовательских tmp
Ну вот я только сейчас заметил что на моих двух debian серверах пользовательские темпы не чистятся.
Если кому надо вот как я решил проблему.
Добавил к стандартному кроновскуму мусорщику debian такую строку:
файл: /etc/cron.d/php5
добавить
Если кому надо вот как я решил проблему.
Добавил к стандартному кроновскуму мусорщику debian такую строку:
файл: /etc/cron.d/php5
добавить
Code: Select all
09,39 * * * * root /usr/bin/find /home/*/tmp -name "sess_*" -type f -cmin +24 -print0 | /usr/bin/xargs -r -0 rm >/dev/null 2>&1
Re: Очистка пользовательских tmp
Спасибо, Exillon, симпатичное решение.
Re: Очистка пользовательских tmp
Остановился на аналогичном решении в кроне:
Можно засунуть команду в cron.daily в принципе.
Code: Select all
15 */12 * * * nice find /home/*/tmp -type f -name 'sess_*' -ctime +5 -delete
Re: Очистка пользовательских tmp
Для тех, кто не захочет читать всю простыню, сразу вопрос.
Откуда эта проблема с файлами в tmp берётся?
Серверу в начале февраля будет год. Неделю назад на сервер добавил алиасы к доменам, даже не домены, а просто алиасы. То есть ничего нового не загружал, только алиасы.
Сервер Ubuntu 16.04 nginx+php-fpm. 2ядра 2озу 50ssd.
После чистки папки tmp
А вот этой командой почистил
p.s. 750к файлов добавилось за сутки.
За сутки до этого были использованы ВСЕ айноды, думал что это единичный случай, т.к. до этого таких проблем не возникло вообще. Просто переименовал папку в tmp2 удалил её и создал новую tmp.
Откуда эта проблема с файлами в tmp берётся?
Серверу в начале февраля будет год. Неделю назад на сервер добавил алиасы к доменам, даже не домены, а просто алиасы. То есть ничего нового не загружал, только алиасы.
Сервер Ubuntu 16.04 nginx+php-fpm. 2ядра 2озу 50ssd.
После чистки папки tmp
Code: Select all
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
none 255337 1309 254028 1% /dev
tmpfs 256387 1400 254987 1% /run
/dev/vda 3055616 85861 2969755 3% /
tmpfs 256387 1 256386 1% /dev/shm
tmpfs 256387 3 256384 1% /run/lock
tmpfs 256387 13 256374 1% /sys/fs/cgroup
У меня не чистит, ни через крон, ни через консоль (менял значение -ctime на -atime, вообще удалял), файлы как были так и остаются в tmp.skurudo wrote: ↑Mon May 25, 2015 9:43 pmОстановился на аналогичном решении в кроне:Можно засунуть команду в cron.daily в принципе.Code: Select all
15 */12 * * * nice find /home/*/tmp -type f -name 'sess_*' -ctime +5 -delete
А вот этой командой почистил
Может что-то не так делаю. Команды вот ониExillon wrote: ↑Thu Jan 29, 2015 5:30 pmCode: Select all
09,39 * * * * root /usr/bin/find /home/*/tmp -name "sess_*" -type f -cmin +24 -print0 | /usr/bin/xargs -r -0 rm >/dev/null 2>&1
Code: Select all
root@tmp#ls -f . | wc -l
746267
root@tmp# nice find /home/*/tmp -type f -name 'sess_*' -ctime +5 -delete
root@tmp# ls -f . | wc -l
747007
root@tmp# nice find /home/*/tmp -type f -name 'sess_*' -ctime +1 -delete
root@tmp# ls -f . | wc -l
749861
root@tmp# nice find /home/*/tmp -type f -name 'sess_*' -ctime +3 -delete
root@tmp# ls -f . | wc -l
750881
root@tmp# nice find /home/*/tmp -type f -name 'sess_*' -ctime +3 -delete
root@tmp# ls -f . | wc -l
753254
root@tmp# nice find /home/*/tmp -type f -name 'sess_*' -atime +3 -delete
root@tmp# ls -f . | wc -l
755785
root@tmp# /usr/bin/find /home/*/tmp -name "sess_*" -type f -cmin +24 -print0 | /usr/bin/xargs -r -0 rm >/dev/null 2>&1
root@tmp# ls -f . | wc -l
17293
За сутки до этого были использованы ВСЕ айноды, думал что это единичный случай, т.к. до этого таких проблем не возникло вообще. Просто переименовал папку в tmp2 удалил её и создал новую tmp.