2016-04-22 3 views
2

У меня есть несколько сайтов chroot PHP-FPM, которым нужно запустить sessionclean cronjob. Я нашел эту суть здесь:Настройка работы php sessionclean cron для работы в среде chroot

https://gist.github.com/zerthimon/4e15f4d04c888dee0410

который имеет это изменение файла /etc/cron.d/php

*/30 * * * *  root [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/www/pools ] && find /var/www/pools -path "*/var/lib/php5" -exec /usr/lib/php5/sessionclean {} $(/usr/lib/php5/maxlifetime) \; 

Первой отметить, что я бегу php7, так php5 становится PHP. Во-вторых, у меня нет maxlifetime в/usr/lib/php, поэтому я пытаюсь запустить это без. Вот моя модификация, которая не работает:

[ -x /usr/lib/php/sessionclean ] && [ -d /var/www/html ] && find /var/www/html -path "*/var/lib/php" -exec /usr/lib/php/sessionclean {} \; 

Может кто-то пожалуйста, скажите мне, как изменить выше, чтобы разобрать через каждый/вар/WWW/HTML/[CHROOT]/каталог вар/Библиотека/PHP/сеансам удалить сеансовые файлы, которые в настоящее время не используются?

Thank you.

ответ

0

Я придумал обходное решение. Это напрямую не изменяет файл /etc/cron.d/php, но предлагает решение для людей, желающих очистить файлы сеанса, которые больше не используются в средах chrooted php-fpm.

Крошечный скрипт работает каждые 4 часа в кронтабе.

#!/bin/bash 

cd /var/www/html 
for D in *; do 
find /var/www/html/"$D"/var/lib/php/sessions/sess_* -mmin +240 -delete; 
done 

Это приведет к удалению всех файлов сессий, которые не изменялись в течение последних 4-х часов, которые хранятся в каждой среде корневым.

Смежные вопросы