scp- und FTP-Uploads

Herrmann

Well-Known Member
Hallo zusammen,

ich sitze gerade an einem kleinen Problem. Ich habe hier einen Server auf den verschiedenen Nutzer Ihre Dateien per scp und ftp (ist eine Anforderung vom Kunden) hochladen können. Soweit sogut.

Ein cronjob verarbeitet dann diese Uploads alle paar Minuten. Wie kann ich erkennen, ob eine Datei komplett hochgeladen wurde oder ob diese gerade hochgeladen wird. Diese noch nicht kompletten Dateien sollen natürlich ignoriert werden.

Hat jemand von euch eine Idee?
 
Hi,

vieleicht, indem man guckt ob sich in einem bestimmten Zeitraum die Länge der Datei ändert.

Joachim
 
Du könntest ebenfalls per Cron-Job eine Überprüfung der Dateigröße über einen bestimmten Zeitraum vornehmen. Ändert sich diese nicht, kannst du die Datei weiterverarbeiten. Ich denke 10s müssten ausreichen um sicherzugehen.

Gruß, I.MC
 
Ein cronjob verarbeitet dann diese Uploads alle paar Minuten. Wie kann ich erkennen, ob eine Datei komplett hochgeladen wurde oder ob diese gerade hochgeladen wird.
Vielleicht kann man da mit fstat was basteln. Solange die Datei noch geschrieben wird, müsste ja ein Zugriff feststellbar sein (habe ich aber selbst nicht getestet).

Ciao.
Markus Mann
];-)
 
Du könntest ebenfalls per Cron-Job eine Überprüfung der Dateigröße über einen bestimmten Zeitraum vornehmen. Ändert sich diese nicht, kannst du die Datei weiterverarbeiten. Ich denke 10s müssten ausreichen um sicherzugehen.

Was für ein cron verwendest Du denn?

Ich kenne keine Implementierung die eine Granularität unter einer Minute bietet.
 
Was für ein cron verwendest Du denn?

Ich kenne keine Implementierung die eine Granularität unter einer Minute bietet.
Das macht man auch nicht mit cron, sondern im aufgerufenen Script, wenn es eine Datei findet.

Pseudocode:

Code:
while $FILESIZE > $FILESIZE_ZULETZT
 do
  $FILESIZE_ZULETZT = $FILESIZE
  $FILESIZE = $(filesize $FILE)
  sleep 10
done

HTH & Ciao.
Markus Mann
];-)
 
über find kannst du alle Dateien rausfiltern, deren letzter Zugriff länger als x Minuten zurückliegt.
find -mtime +2m

Stefan
 
Ich wuerde da lieber nach geoeffneten Filehandles sehen. Ein Dateitransfer kann schon mal mehrere Minuten "haengen".

Also, mit lsof oder fstat nachsehn, ob ssh/scp/ftpd die Datei geoeffnet halten (oder ob sie ueberhaupt geoeffnet ist), dann weiterverarbeiten.
 
Zurück
Oben