Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Linux und DOS: FTP neuste Datei herunterladen (https://www.delphipraxis.net/153874-linux-und-dos-ftp-neuste-datei-herunterladen.html)

Ajin 18. Aug 2010 15:48

Linux und DOS: FTP neuste Datei herunterladen
 
Hallo DP !

Ich wuerde gerne die neuste Datei von einem Server herunterladen. Im Zielverzeichnis befinden sich jedoch dutzende Dateien un dmich interessiert nur die mit dem Datum von heute.

Frage 1:
kennt DOS FTP oder Linux FTP eine Art "sort" oder irgend einen anderen anwendbaren Filter um eine bestimmte Datei herunterzuladen?

Frage 2:
Mit einem kleinen Trick koennte man das Problem bestimmt loesen.
- Man koennte sich ja das ganze Verzeichnis mit dem dir Befehl anzeigen lassen und die Ausgabe irgendwie an DOS/Linux weiterleiten. (ich glaub zumindest unter Linux geht das irgendwie)
- Dann mittels Betriebssystem Kommandos die Liste der Dateien sortieren und den gewuenschten Eintrag herausfiltern und merken
- dann die 2. FTP Verbindung aufbauen und die Datei herunterladen

Was sagt ihr dazu?

Bernhard Geyer 18. Aug 2010 15:58

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Zitat:

Zitat von Ajin (Beitrag 1043134)
kennt DOS FTP ...

DOS kenn von sich aus gar kein FTP. Oder meinst du das Consolenfenster von Windows?

XHelp 18. Aug 2010 16:02

AW: Linux und DOS: FTP neuste Datei herunterladen
 
PWD liefert die die Auflistung des Verzeichnisses. Du kannst ja das Format angucken, die Liste auswerten und dann die neuste Datei raussuchen. Eine neue FTP Verbindung aufzubauen brauchst du nicht, da die Dateien eh in einer Transfer-Verbindung übertragen werden und die Steuerverbindung wird davon nicht betroffen.

blackfin 18. Aug 2010 16:24

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Wie bereits gesagt wurde, holst du dir mit PWD die Verzeichnisliste.
Diese kannst du relativ einfach parsen, ist eine SPACE-delimitierte Liste pro Zeile / Datei / Verzeichnis.
Wenn der Server das MTDM-Kommando unterstützt (ich kenn keinen aktuelleren, der das nicht könnte), kannst du für jede Datei dann das "last modification date" auslesen.

SirThornberry 18. Aug 2010 21:02

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Seid ihr sicher das man mit pwd die Verzeichnisliste holt? pwd kenne ich nur als "print working directory" - gibt also nur den aktuellen Verzeichnispfad aus.

XHelp 19. Aug 2010 03:52

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Zitat:

Zitat von SirThornberry (Beitrag 1043200)
Seid ihr sicher das man mit pwd die Verzeichnisliste holt? pwd kenne ich nur als "print working directory" - gibt also nur den aktuellen Verzeichnispfad aus.

Ja, da könntest du recht haben. Habe gerade nachgeguckt und es ist doch LIST. Aber der rest der Aussage müsste stimmen :)

Ajin 19. Aug 2010 07:56

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Guten Morgen,

also pwd liefert unter dem Vista Konsolen-Fenster genau dass, was SirThornberry meinte:

ftp> pwd
257 "/Test/Bla1/Bla2/" is current directory


Edit: den Befehl LIST gibt es nicht..

DeddyH 19. Aug 2010 09:54

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Versuch es mal mit ls (kleines L, kleines S).

SirThornberry 19. Aug 2010 10:25

AW: Linux und DOS: FTP neuste Datei herunterladen
 
genau, ls sollte die richtige wahl sein (der Linux Befehl = Äquivalent zu dir). Einige Clients unterstützen auch "dir" (gesendet wird dann intern in beiden Fällen der LIST Befehl (per Protokoll spezifizier))

Ajin 19. Aug 2010 14:06

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Huhu!

Also der befehl ls -lrt sortiert alle Eintraege nach Datum. Das ist schonmal ein Schritt in die richtige Richung. Kann ich denn mehrere Argumente gleichzeitig auf den FTP loslassen? ls -lrt kombiniert mit einem dir *.zip und einem mget mit Argumenten?

Oder wie kann ich mit der Ausgabe des FTP-Befehls arbeiten?

XHelp 19. Aug 2010 14:26

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Es gibt kein ls bei FTP. Was soll die Aussage "ls kompiniert mit einem dir" bedeuten?
Hast du dir schon mal die Ausgabe von LIST angeguckt?

Ajin 19. Aug 2010 14:51

AW: Linux und DOS: FTP neuste Datei herunterladen
 
hmm,

also die Windows XP Konsole zeigt C:\Windows\system32\cmd.exe - ftp an und dort gibt es auch den Befehl ls. LIST existiert leider nicht.

Das Ergebnis eines ls -lrt zeigt mir alle 226 Dateien des Ordners nach Datum sortiert an (absteigend).
In diesem ganzen Wust von Dateien interessiert mich lediglich ein bestimmter Datei-Typ: .zip-Dateien - und davon genau die mit dem heutigen Datum.

Nun kann ich mit dem Befehl ls *.zip alle zip Dateien auflisten lassen. Der Befehl ls -lrt sortiert alle Dateien.... wie kann ich nun beide Befehle kombinieren so dass ich alle .zip Dateien nach dem Datum sortiert ausgeben (und auch herunterladen) kann?

Der Befehl: ls *.zip -lrt klappt schonmal nicht. Um an mein Ziel zu kommen muesste ich verschiedene Befehle kombinieren koennen oder Hexen ^^

Klaus01 19. Aug 2010 15:24

AW: Linux und DOS: FTP neuste Datei herunterladen
 
.. und was tut ls -lrt *.zip ?

Grüße
Klaus

Ajin 19. Aug 2010 15:31

AW: Linux und DOS: FTP neuste Datei herunterladen
 
ftp> ls- lrt *.zip
Error opening local file *.zip
> *.zip:Invalid argument

es motzt :(

XHelp 19. Aug 2010 15:34

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Willst du denn jetzt rausfinden, wie du mit Windows ftp Programm umgehen kannst, oder es automatisieren, in dem du eigenen PseudoFTPClient schreibst? ls ist kein FTP Befehl laut RFCs

Ajin 19. Aug 2010 15:38

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Ich moechte herausfinden, was das Windows XP FTP Programm bietet, um mein Anliegen zu loesen. Mein Arbeitsplatz PC ist mit Win XP bestueckt, der Zielrechner Sun OS 5 glaub ich.

rollstuhlfahrer 19. Aug 2010 17:29

AW: Linux und DOS: FTP neuste Datei herunterladen
 
Zitat:

Zitat von Ajin (Beitrag 1043432)
ftp> ls -lrt *.zip
Error opening local file *.zip
> *.zip:Invalid argument

es motzt :(

Tja, bei mir gehts! :twisted::twisted:

Das Problem dabei ist, dass der FTP-Client das Ergebnis von "ls -lrt" in eine lokale Datei mit dem Namen *.zip schreiben will. Nur hast du in dem lokalen Verzeichnis keine ZIP-Datei, die er finden könnte. ls unterstützt keine 2 Argumente, du musst daraus eines machen und zwar so:
Code:
ls "-ltr *.zip"
und dann nimmt der FTP-Server das auch.

Bernhard

PS: Für alle gültigen Befehle helfen dir die FTP-Server gerne. Du musst sie nur lieb darum fragen. Der Befehl dafür lautet HELP.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz