HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Server Operation (http://www.howtoforge.com/forums/forumdisplay.php?f=5)
-   -   cronjob for php-session (http://www.howtoforge.com/forums/showthread.php?t=45017)

robertlouwen 16th April 2010 14:10

cronjob for php-session
 
Hello all,

I want session files older than 30 minutes automatic deleted and according to this information found in php.in I have to create cronjob or a script
Code:

; 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):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

My path to session is /var/lib/php/session so I tried the following possibilities:
[root@obelix ~]# crontab -e
Code:

*/30 * * * * root find -cmin +30 | xargs rm /var/lib/php/session &> /dev/null
Code:

*/30 * * * * root /var/lib/php/session find -cmin +30 | xargs rm /var/lib/php/session  &> /dev/null
Code:

*/30 * * * * cd /var/lib/php/session find -cmin +30 | xargs rm &> /dev/null
None of them work.

Who knows the right syntax ?

falko 17th April 2010 18:15

Take a look at http://www.howtoforge.com/back_up_my..._interruptions

The /usr/local/sbin/mysqlbackup.sh script should give you the idea how to do this. :)

BorderAmigos 17th April 2010 18:56

My php set up has this cron job to delete sessions every 30 minutes. In /etc/cron.d/php5 file...

Code:

0,30 * * * * 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
You may want to change php5 to php in your setup.

robertlouwen 17th April 2010 22:02

@ Falko,

At first I thought "stop this is too difficult for me" my second thought was "a challenge"

What you say is make a script and make a cronjob for the script.
From your example I only need
Code:

#!/bin/sh

datum=`/bin/date +%Y%m%d-%H`

for file in "$( /usr/bin/find /home/sqlbackup -type f -mtime +2 )"
do
  /bin/rm -f $file
done

exit 0

and adjust this

Code:

"$( /usr/bin/find /home/sqlbackup -type f -mtime +2 )"
do
  /bin/rm -f $file

to

Code:

"$( /usr/bin/find  /var/lib/php/session -type f -cmin +30 )"
do
  /bin/rm -f $file

Code:

chmod 755 /usr/local/sbin/cleanup.sh
Finaly I create the cronjob
Code:

*/30 * * * * /usr/local/sbin/cleanup.sh &> /dev/null
I will give this a try.

@BorderAmigos,

I am challenged by Falko's suggestion, if I fail I use your cronjob.


All times are GMT +2. The time now is 11:34.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.