设置php sessionclean cron作业在chroot环境中运行

我有多个需要运行sessionclean cronjob的PHP-FPM chroot站点。 我在这里找到了这个要点:</ p>

https://gist.github。 com / zerthimon / 4e15f4d04c888dee0410 </ p>

编辑/etc/cron.d/php文件</ p>

  *  / 30 * * * * root [-x / usr / lib / php5 / maxlifetime]&amp;&amp;  [-x / usr / lib / php5 / sessionclean]&amp;&amp;  [-d / var / www / pools]&amp;&amp;  find / var / www / pools -path“* / var / lib / php5”-exec / usr / lib / php5 / sessionclean {} $(/ usr / lib / php5 / maxlifetime)\; 
</ code> < / pre>

首先要注意的是我正在运行php7,所以php5变成了php。 第二个注意事项是我在/ usr / lib / php中没有maxlifetime,所以我试图在没有它的情况下运行它。 这是我的修改不起作用:</ p>

  [-x / usr / lib / php / sessionclean]&amp;&amp;  [-d / var / www / html]&amp;&amp;  find / var / www / html -path“* / var / lib / php”-exec / usr / lib / php / sessionclean {} \; 
</ code> </ pre>

可以 有人请告诉我如何修改上面的内容来解析每个/ var / www / html / [chroot] / var / lib / php / sessions目录,以删除当前没有使用的会话文件?</ p>

谢谢。</ p>
</ div>

展开原文

原文

I have multiple PHP-FPM chroot sites that need to run the sessionclean cronjob. I found this gist here:

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

Which has this edit of the /etc/cron.d/php file

*/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) \;

First to note is that I am running php7, so php5 becomes php. Second note is that I have no maxlifetime in /usr/lib/php so am trying to run this without. Here is my modification which is not working:

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

Can someone please tell me how to modify the above to parse through each /var/www/html/[chroot]/var/lib/php/sessions directory to remove sessionfiles that are not currently being used?

Thank You.

1个回答



我想出了一个解决方法。 这不会直接修改/etc/cron.d/php文件,但确实为想要清除chrooted php-fpm环境中不再使用的会话文件的人提供了解决方案。 </ p>

crontab中每4小时运行一个小脚本。 </ p>

 #!/ bin / bash 

cd / var / www / html
for D in *; do
find / var / www / html /“$ D”/ var / lib / php / sessions / sess_ * -mmin +240 -delete;
done
</ code> </ pre>

这将删除在最近4小时内未修改的所有会话文件,这些文件存储在每个chroot环境中。 </ p>
</ div>

展开原文

原文

I came up with a workaround. This does not directly modify the /etc/cron.d/php file, but does offer a solution for people wanting to clear session files no longer in use within chrooted php-fpm environments.

A tiny script runs every 4 hours in crontab.

#!/bin/bash

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

This will delete all session files not modified within the last 4 hours which are stored within each chroot environment.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐