Очистка php сессий в ubuntu и debian

Материал из support.qbpro.ru

Debian я так понимаю пошел своим путем и для очистки сесий использует скрипт из крона который, чистит файлы со старыми php сессиями. Выглядит этот скрипт вот так

32093? Ss 0:00 /bin/sh -c [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ]&& find /var/lib/php5/ 
-depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr /lib/php5/maxlifetime)!-execdir fuser -s {} 2>/dev/null \; -delete
32098? S 1:54 find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +24! -execdir fuser -s {}; -delete

находится тут:

/etc/cron.d/php5

Большая проблема что он сильно грузит винт, скрипт не успевает отрабатывать удаление файлов и запускается снова,
в моменты когда сессий очень много запускается несколько десятков скриптов на очистку сессий и они съедают весь процессор.

для решения делаем так:

Называется flock.

Использовать примерно так в кроне:

0 0 * * * root flock -n /tmp/somefile.lock "somecsript.sh"

Второй запуск команды

flock -n /tmp/somefile.lock "somecsript.sh" 

уже не случится до тех пор, пока первый инстанс работает.

В somescript.sh, соответственно, пихаете всё то, что запускается у вас сейчас (chmod +x на скрипт не забудьте).