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
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