Crontab mit Joker / Wildcard

joachimdieteric

New Member
Hallo,
ich habe folgendes Problem
.
Mein Server soll Daten per crontab in eine Datenbank schreiben. Die Daten sind in php-Dateien gespeichert. Der Dateiname der php-Dateien sieht wie folgt aus:
"26_2_1214_20_08_354save.php"
Er setzt sich also aus einem Timestamp und der Endung save.php zusammen.
Von diesen Dateien gibt es im Verzeichnis eine ganze Menge.

Im Crontab werden die php-Dateien durch "/usr/bin/php -f /srv/www/vhosts/meinedomain.com/upload/*save.php >/srv/www/vhosts/meinedomain.com/upload/clean_tmp_dir.log"
aufgerufen.
Allerdings wird immer nur die erste Datei abgearbeitet.

Nachdem die Daten in der Datenbank sind, sollen die php-Dateien gelöscht werden. Interessanter weise funktioniert der Befehl tadellos.
"rm/srv/www/vhosts/meinedomain.com/upload/*save.php > /srv/www/vhosts/meinedomain.com/upload/clean_tmp_dir.log"

Hat jemand einen Tipp für mich, wie ich die Dateien mit der *save.php -Endung alle aufrufe?

Vielen Dank

LG

joe
 
Last edited by a moderator:
Verwende doch ein Skript in cron.daily oder zu bestimmten Zeitpunkten, ich weiß ja nicht wie oft du das brauchst. (ungetestet):
Code:
 #! /bin/bash
for datei in /srv/www/vhosts/meinedomain.com/upload/*save.php; 
do 
/usr/bin/php -f $datei >> /srv/www/vhosts/meinedomain.com/upload/clean_tmp_dir.log; 
done
 
Noch eine kurze Erklärung, warum es mit dem Wildcard nicht funktioniert. Das PHP-Binary wird aufgerufen und erhält als Parameter den Dateinamen des Scriptes, den es ausführen soll. Allerdings beendet sich das PHP-Binary, sobald es am Ende des ersten Scripts angelangt ist. Der rm-Befehl im Gegensatz dazu weiß aber, wie er mit einer Liste von Dateien umgehen soll.
 
Back
Top