Seite 1 von 1

selektiver ftp-download

Verfasst: 26.01.2006, 10:56
von r2d2
moin,

ich brauche ein verfahren, mit dem ich deteien selektiv vom ftp-server holen kann. z.B.: die letzten 30kB einer bestimmten datei.

jemand idee?

wäre für unterstützung dankbar.

r2d2

Verfasst:
von

selektiver ftp-download

Verfasst: 26.01.2006, 11:06
von robo
Puuuh ... mit tail kriegst du die letzten 10 Zeilen einer (Text-)Datei. Du kannst die Anzahl auch einstellen. Obs für Binärdateien auch geht, weiss ich nicht. Aber man kann auch die Anzahl der Bytes angeben.

Schreib dir ein Script, etwa so in der Art:

tail -c 30720 datei >neuedatei

Lasse das über einen Cronjob laufen und hol dir dann immer neuedatei per FTP (geht auch mit wget).

cu, Robo :)

Verfasst: 26.01.2006, 11:34
von r2d2
danke robo, abr ich kann keine befehle auf demserver ausführen.

ich habe allerdings das "problem" gelöst. das geht mit raw ftp-befehlen.
leider kann ws-ftp dies nicht. ich hole mir jetzt filezilla.

danke

selektiver ftp-download

Verfasst: 26.01.2006, 13:01
von robo
Interessant, vom raw-ftp-Befehlen habe ich noch nichts gehört. Vielleicht kannst du die Lösung mal hier posten, dürfte für den Einen oder Anderen interessant sein ...

cu, Robo :)

Verfasst: 26.01.2006, 13:51
von r2d2

Verfasst: 26.01.2006, 18:22
von r2d2
jetzt habe ich das ganze in python gescriptet:

Code: Alles auswählen

from ftplib import FTP
ftp = FTP('servername')
ftp.login('user', 'password')
# ftp.retrlines('LIST')
ftp.cwd('path')
logfilesize = ftp.size('datei.log')
downloadoffset = logfilesize - 3000000
ftp.retrbinary('RETR datei.log', open('c:/datei.log', 'wb').write, 4096, downloadoffset)
ftp.quit()
das beispiel holt die letzten 3 MB aus der logfile

r2d2