Dateisperre während einer FTP Übertragung

Bash, Shell, PHP, Python, Perl, CGI
evilduffp
Posts: 70
Joined: 2005-07-06 00:14

Dateisperre während einer FTP Übertragung

Post by evilduffp » 2007-08-10 12:44

Moin !!

Ich habe da folgendes Problem. Ich habe einen FTP-Account eingerichtet in den Personen XML-Dateien übertragen sollen die dann per PHP-Cronjob, der automatisch jede Minute läuft, importiert werden sollen.

Funktioniert auch meine Programmierung, das einzigste was mich stört ist das wenn sich eine Datei, von sagen wir mal 4MB, gerade per FTP in der Übertragen befindet und dann der Cronjob zugreift, wird die Datei einfach gelöscht ohne bearbeitet zu werden.

Gibt es eine Möglichkeit das ich per PHP prüfen kann ob sich die Datei gerade noch in der Übertragung befindet ?

Ich habe mir zwar schon eine Lösung gebastelt, aber so ganz gefällt mir die noch nicht. Ich prüfe derzeit einfach die Dateigröße, lasse PHP in einer for() Schleife bis 1000000 zählen und vergleiche dann die Größe erneut. Das funktioniert auch super, aber dadurch entsteht auch eine lange Wartezeit wenn viele Dateien im FTP-Account liegen.

Vielleicht hat jemand eine Idee ??

Vielen Dank !!!

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Dateisperre während einer FTP Übertragung

Post by Roger Wilco » 2007-08-10 12:57

Bei ProFTPd würde ich die Direktive HiddenStore benutzen. Damit wird die Datei erst "sichtbar", wenn sie komplett hochgeladen wurde.

evilduffp
Posts: 70
Joined: 2005-07-06 00:14

Re: Dateisperre während einer FTP Übertragung

Post by evilduffp » 2007-08-10 13:10

Ah ja !! Super Danke. Ich habe auf meinem Server ProFTPd. Wie/wo kann ich diese Einstellung vornehmen ?

evilduffp
Posts: 70
Joined: 2005-07-06 00:14

Re: Dateisperre während einer FTP Übertragung

Post by evilduffp » 2007-08-10 13:34

Ahhh !! Ich habe es schon hin bekommen...vielen Dank :-)

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Dateisperre während einer FTP Übertragung

Post by thorsten » 2007-08-14 12:10

Anstelle jede Minute in den Ordner zu schauen, könntest du auch incron benutzen. (Dazu gab es mal in einem Linux Magazin eine nette kleine Anleitung.)