Cron Job zum Löschen von PHP5-Sessions

Das ist wieder mal ein Posting, welches vor allem mir selber als Gedankenstütze dienen soll, damit ich beim nächsten mal, wenn dieses Problem auftritt, nicht so viel Zeit verliere:

Ich hatte das Problem, dass “alte” PHP-Sessions unter meinem Debian-System nicht gelöscht wurden. Für’s Löschen zuständig ist der Cron-Job /etc/cron.d/php5.

Da auf dem Server verschiedene Webapplikationen laufen, werden aus Sicherheitsgründen verschiedene Pfade für die Session-Files verwendet. Für jeden dieser Pfade ist im Cron-Job eine Zeile in folgender Art geschrieben:

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -d /sessionspath1 ] && find /sessionspath1/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm
10,40 *     * * *     root   [ -d /sessionspath2 ] && find /sessionspath2/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm

Aus einem mir unklaren Grund wurden die Sessions nicht gelöscht, obwohl die einzelnen Befehle (als root) funktionsfähig waren:

[ -d /sessionspath1 ] && find /sessionspath1/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm

Bei der Fehlersuche bin ich dann auf die Log-Datei /var/log/syslog aufmerksam geworden, wo der Cron-Job seine Befehle aufzeichnet. Ich habe dann zunächst die Datei /etc/syslogd.conf editiert und das Kommentarzeichen vor cron.* weggenommen. Danach den Syslog-Dämon neu gestartet mit /etc/init.d/sysklogd restart , damit die Cron-Befehle in einer speziellen Datei /var/log/cronlog abgelegt werden.

Das Neustarten des Cron-Dämon’s hat dann einen Eintrag im LOG-File hinterlassen:

syslog.0:Jan 12 10:56:49 prag092 cron[4308]: Error: bad minute; while reading /etc/cron.d/php5

Mit dieser Fehlermeldung war dann der Fehler leicht zu finden. Tricky war dann allerdings, dass das reine Korrigieren in der /etc/cron.d/php5 – Datei noch nicht ausgreicht hat, sondern ein Neustart des Cron-Daemons nötig war.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.