TCP/IP-Programme (ab Windows® 98):
FTP überträgt Dateien von und zu einem ftp-Server

FTP.EXE basiert auf dem Client/Server-Konzept. Der Server ermöglicht das Laden und Speichern von Dateien. Der Server wird erst dann aktiviert, wenn ein Client mit ihm in Kontakt tritt- jedenfalls gilt dies so für FTP-Server unter Unix.

Beim PC unter Windows 98 wird mit dem Programm FTP.EXE ein komandozeilenorientierter Client zur Verfügung gestellt. Ein FTP-Server fehlt im Lieferumfang von Windows 98. Gute FTP-Server für PCs sind als Freeware erhältlich.

Das beim PC unter PC unter Windows mitgelieferte FTP.EXE lässt sich sowohl interaktiv einsetzen als auch durch ASCII-Textdateien steuern. Die auf auf einigen anderen Webseiten verbreitete Information, dass dies FTP-Programm den passiven Übertragungsmodus unterstützen könne, ist falsch (Stand Ende Juni 2015). Jedoch werden im WWW kommandozeilenorientierte FTP-Clientprogramme zum Download angeboten, die auch den passiven Übertragungsmodus unterstützen.

Die Bedienung eines FTP-Clients per Kommandozeile ist ausgesprochen umständlich und erfordert etwas Übung. Es gibt, ebenfalls als Freeware, FTP-Clients mit grafischer Oberfläche, die leichter zu bedienen sind. Ziemlich bekannt ist der als Freeware erhältlich FTP-Client Filezilla.

Aufruf:

ftp [-v] [-n] [-i] [-d] [-g] [-s:dateiname] [host]
Parameter   Beschreibung
-vUnterdrückt die Ausgabe der Antworten des FTP-Servers.
-nUnterbindet die automatische Anmeldung bei erstmaliger Verbindung.
-iSchaltet bei der Übertragung mehrerer Dateien die wiederholte Anforderung von Eingaben durch den Benutzer ab.
-dErmöglicht die Fehlersuche (Debugging), gibt sämtliche ftp-Befehle aus, die zwischen Client und Server ausgetauscht werden.
-gUnterdrückt die Verwendung von Platzhalterzeichen für Datei-und Pfadnamen auf dem Client. (Siehe den FTP-Befehl glob.)
-s:dateinameKennzeichnet eine Textdatei mit ftp-Befehlen, die automatisch nach dem Start von ftp ausgeführt werden.
hostBezeichnet den Namen des Host-Computers bzw. die 1P-Adresse des FTP-Server, zu dem eine Verbindung aufgebaut werden soll. FTP-Client und FTP-Server können auf dem gleichen Rechner laufen; dies kann für Test- und Übungszwecke sinnvoll sein.

Aufrufbeispiele:

Interaktive Ausführung, „kleinbahn-wohldorf.de” ist ein Hostname:
ftp kleinbahn-wohldorf.de

Automatische Ausführung:
ftp -s:wohldorf.scr kleinbahn-wohldorf.de
Dabei ist kleinbahn-wohldorf.de der Hostname. Der Inhalt der Steuerdatei wohldorf.scr bewirkt eine Übertragung der Datei EKV_4.htm im Binärformat an den Host in das Unterverzeichnis public_html des angemeldeten Benutzers.

Manchmal ist es erwünscht, den Ablauf in einer Textdatei zu protokollieren. Soll die Protokolldatei den Namen hugo.txt haben, sieht der Aufruf so aus:
ftp -s:wohldorf.scr kleinbahn-wohldorf.de >hugo.txt

Die Steuerdatei wohldorf.scr hat folgenden Inhalt (Benutzername und Passwort lauten natürlich anders):

Benutzername
Passwort
binary
lcd public_html
cd public_html
put EKV_04.htm
bye
Der Ablauf der Übertragung stellt sich auf dem Bildschirm wie folgt dar:
0: 5:31:16 D:\homepage\EKV>ftp  -s:wohldorf.scr kleinbahn-wohldorf.de
Verbindung mit kleinbahn-wohldorf.de.

220 "Willkommen auf den FTP von br-media.net."
Benutzer (kleinbahn-wohldorf.de:(none)):
331 Please specify the password.

230 Login successful.
Ftp>
Ftp> binary
200 Switching to Binary mode.
Ftp> lcd public_html
Lokales Verzeichnis jetzt D:\homepage\EKV\public_html.
Ftp> cd public_html
250 Directory successfully changed.
Ftp> put EKV_04.htm
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
Ftp: 3178 Bytes gesendet in 0.05Sekunden 63.56KB/Sek.
Ftp> bye
221 Goodbye.

0: 5:31:58 D:\homepage\EKV>

Kommentiertes Ablaufbeispiel (weiter unten)


Folgende Befehle kennt FTP.EXE:

Die Befehle können abgekürzt eingeben werden! Die Befehlsbeschreibung ist leider nur ungenau und enthält möglicherweise sogar Fehler. Vor der Anwendung eines bisher nicht erprobten Befehls sollte seine genaue Wirkungsweise ausprobiert werden!

Die generelle und wirklich verbindliche Befehlsbeschreibung für ftp ist in den Dokumenten RFC 959 und RFC 1123 zu finden.

BefehlBedeutung
!Führt den betreffenden Befehl auf dem Computer aus, auf dem der FTP-Client läuft. Beispiele:

! alleine führt wechselt in ein MSDOS-Fenster- exit führt wieder zum FTP-Client zurück.

!dir d:\ wirkt wie das MSDOS-Kommando dir d:\

! help liefert eine Befehlsliste des Clients mit einer kurzen Beschreibung

?Gibt Beschreibungen zu den FTP-Befehlen des Clients aus. Entspricht help.
appendWeitere Eingaben: lokale_Datei remote_datei
Hängt eine Datei auf dem FTP-Clienten an eine Datei auf dem FTP-Server an, wobei die momentane Einstellung für den Dateityp verwendet wird.
asciiStellt ASCII als Dateiübertragungstyp ein.
bellBewirkt ein akustisches Signal nach jedem abgeschlossenen FTP-Befehl. Standardmäßig ertönt kein Signal.
binaryStellt binär als Dateiübertragungstyp ein.
byeBeendet die FTP-Sitzung mit dem FTP-Server und den FTP-Clienten.
cdWechselt das Arbeitsverzeichnis auf dem FTP-Server.
closeBeendet die FTP-Sitzung mit dem FTP-Server, der FTP-Client wird jedoch nicht beendet.
debugSchaltet die Fehlersuche (Debugging) ein und aus. Ist sie eingeschaltet, wird jeder an den FTP-Server gesandte Befehl mit vorangestelltem String ---> angezeigt. Standardmäßig ist die Fehlersuche abgeschaltet.
deleteWeitere Eingaben: remote_datei
Löscht angegeben Datei auf dem FTP-Server.
dirListet Dateien und Verzeichnisse des FTP-Servers auf.
disconnectBeendet die Verbindung mit dem FTP-Server und kehrt zur ftp-Eingabeaufforderung zurück. Identisch mit close.
getWeitere Eingaben: remote_datei
Kopiert eine Datei vom FTP-Server auf den FTP-Client unter Verwendung des eingestellten Dateiübertragungstyps.
globUnterdrückt bzw. ermöglicht die Verwendung von Platzhalterzeichen für Datei- und Pfadnamen auf dem FTP-Server. Standardmäßig ist dies möglich.
hashSchaltet die Ausgabe des Doppelkreuzes (#) bei jedem übertragenen Datenblock ein bzw. aus. Ein Datenblock ist 2048 Bytes lang. Standardmäßig werden keine Hash-Zeichen ausgegeben.
helpGibt Beschreibungen von ftp-Befehlen aus. Im Falle von FTP.EXE erzeugt "help" lediglich eine Aufzählung der Befehle ohne Erklärung. Dagegen liefert z.B. "help get" eine Kommandoerklärung mit dem Inhalt (vollständig!): Datei empfangen. "help mget". liefert: Mehrere Dateien empfangen.
lcdWeitere Eingaben: lokales_verzeichnis
Ändert das Arbeitsverzeichnis auf dem FTP-Client. Normalerweise wird das aktuelle Verzeichnis, in dem man beim Starten des FTP-Clients stand, verwendet.
literalSendet ausgeschriebene Parameter an den FTP-Server und erwartet einen einzelnen FTP-Exitcode.
lsZeigt den Inhalt des aktuellen Serververzeichnisses an.
mdeleteLöscht Dateien auf dem FTP-Server.
mdirGibt eine Liste der Dateien und Unterverzeichnisse eines Verzeichnisses des FTP-Servers aus. Hier können mehrere Dateien zugleich angegeben werden.
mgetKopiert Dateien des FTP-Servers auf den FTP-Clienten. Es wird der momentan eingestellte Dateiübertragungstyp verwendet.
mkdirWeitere Eingaben: remote_verzeichnis
Legt ein neues Verzeichnis auf dem FTP-Server an.
mlsGibt eine abgekürzte Liste der Dateien und Unterverzeichnisse des FTP-Servers aus.
mputKopiert Dateien vom FTP-Clienten auf den FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet wird.
openWeitere Eingaben: servername oder server-IP-Adresse und wahlweise eine Portnummer.
Stellt eine Verbindung zum angegebenen FTP-Server her.

Man kann hinter dem Servernamen bzw. hinter der Server-IP-Adresse zusätzlich eine Portnummer für den Verbindungsaufbau zum FTP-Server angeben. Gibt man keine Portnummer an, wird Port 21 verwendet. Wenn der FTP-Server kuhn23.de auf Port 4702 zu erreichen ist, lautet das Kommando
open kuhn23.de 4702

promptSchaltet die Eingabeaufforderung ein oder aus. Während der Übertragung mehrerer Dateien gibt ftp Eingabeaufforderungen aus, die es ermöglichen, Dateien selekiv abzurufen und zu speichern. Die Kommandos mget und mput übertragen sämtliche Dateien, wenn die Eingabeaufforderung unterdrückt wird. Standardmäßig ist die Eingabeaufforderung eingeschaltet.
putWeitere Eingaben: lokale_Datei
Kopiert eine Datei vom FTP-Clienten zum FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet.
pwdZeigt das aktuelle Verzeichnis des FTP-Servers an.
quitBeendet die FTP-Sitzung mit dem FTP-Server und beendet anschließend den FTP-Clienten.
quoteSendet ausgeschriebene Parameter an den FTP-Server und erwartet einen einzelnen FTP-Antwortcode. Entspricht literal.
recvWeitere Eingaben: remote_datei server_datei
Kopiert eine Datei vom FTP-Server auf den FTP-Clienten. Es wird der momentan eingestellte Dateiübertragungstyp verwendet. Entspricht get.
remotehelpZeigt die Hilfe des FTP-Servers an, sofern der FTP-Server dies Kommando unterstützt.
renameWeitere Eingaben: alter_remote_datei neue_remote_datei
Umbenennung von Dateien oder Verzeichnissen auf dem FTP-Server.
rmdirLöscht ein Verzeichnis auf dem FTP-Server.
sendWeitere Eingaben: lokale_Datei
Kopiert eine Datei des FTP-Clienten auf den FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet. Entspricht put.
statusZeigt den aktuellen Status von FTP-Verbindungen und von Schaltern an.
traceSchaltet die Paketverfolgung ein, wodurch sich die Route eines jeden Pakets bei der Ausführung eines ftp-Befehls feststellen lässt.
typeGgf. weitere Eingaben: ascii, image oder binary
Zeigt den Dateiübertragungstyp an und verändert ihn, falls einer der Parameter ascii, image oder binary folgen. image entspricht binary.
userTeilt dem FTP-Server den Benutzernamen bzw. Benutzeraccount mit. Der FTP-Server möchte anschließend das Passwort dieses Benutzers erfahren.
verboseSchaltet den ausführlichen Modus ein und aus. Ist er eingeschaltet, werden sämtliche Antworten von FTP ausgegeben. Bei Beendigung einer Dateiübertragung wird eine Statistik über die Effizienz der Übertragung ausgegeben. Standardmäßig ist dies der Fall.

Beispiel einer FTP-Sitzung (FTP.EXE von Microsoft):

Die farbig hinterlegten Zeilen erklären den jeweils nächsten Vorgang. Der verwendete FTP-Server ist ein Freeware-Programm auf einem PC.
Der Client meldet sich beim Server an und loggt sich mit Benutzernamen und Passwort ein.
0: 6:39:10 C:\WINDOWS>ftp dell

Verbindung mit dell.
220 Personal FTP Server ready
Benutzer (dell:(none)): teddy
331 Password required for teddy.
Kennwort:
230 User teddy logged in.
Es wird in das Verzeichnis C:/temp/neu/bearb auf dem Server gewechselt.
Ftp> cd neu
250 CWD command successful. "c:/temp/neu/" is current directory.
Ftp>cd bearb
250 CWD command successful. "c:/temp/neu/bearb/" is current directory.
Ftp> pwd
257 "c:/temp/neu/bearb/" is current directory.
Mit ls oder dir schaut der Client nach, welche Dateien sich im angewählten Verzeichnis des Servers befinden.
Ftp> ls
200 Port command successful.
150 Opening data connection for directory list.
...
...
P5290078_Verden_Stadtplan
226 File sent ok
Ftp: 38 Bytes empfangen in 0.06Sekunden 0.63KB/Sek.
Ftp> dir
200 Port command successful.
150 Opening data connection for directory list.
drw-rw-rw- 1 ftp ftp 0 May 23 2004 .
drw-rw-rw- 1 ftp ftp 0 May 23 2004 ..
-rw-rw-rw- 1 ftp ftp 319764 Jun 06 2004 P5290078_Verden_Stadtplan
226 File sent ok
Ftp: 200 Bytes empfangen in 0.00Sekunden 200000.00KB/Sek.
Damit die zu übertragende Datei nicht verfälscht wird, wählt der Client den binären Übertragungsmodus.
Ftp> binary
200 Type set to I.
Bei diesem Versuch hat der Client den Dateinamen nicht vollständig eingegeben.
Ftp> get P5290078_Verden_Stadtplan.
200 Port command successful.
150 Opening data connection for P5290078_Verden_Stadtplan..
501 Cannot RETR. Cannot open file c:\temp\neu\bearb\P5290078_Verden_Stadtplan.
So ist es richtig!
Ftp> get P5290078_Verden_Stadtplan
200 Port command successful.
150 Opening data connection for P5290078_Verden_Stadtplan.
226 File sent ok
Ftp: 319764 Bytes empfangen in 0.72Sekunden 444.12KB/Sek.
Beenden der FTP-Verbindung
Ftp> bye
221 Goodbye.
0: 6:42:11 C:\WINDOWS>
Die übertragene Datei befindet sich im Verzeichnis C:\WINDOWS des Clienten, da der Client dort stand, als er ftp startete.

Das Problem mit den Dateizugriffsrechten

Beim Hochladen von Dateien zum FTP-Server möchte man unter Umständen die Zugriffsrechte für die Dateien auf dem Server ändern. Das Ändern von Dateizugriffsrechten auf dem FTP-Server ist durch das FTP-Protokoll nicht vorgesehen. Mit welchen Dateizugriffsrechten hochgeladene Dateien versehen werden, hängt von der Konfiguration des FTP-Servers ab. Viele FTP-Server unterstützen jedoch den Befehl „SITE”. Damit können zusätzliche Kommandos, die nicht Bestandteil von FTP sind, ausgeführt werden. Hierzu gehört unter Umständen auch das Unix-Kommando chmod zum Ändern der Dateizugriffsrechte. Das sieht dann z.B. so aus:

SITE chmod 604 hugo.htm

604 setzt dabei das gewünschte Dateizugriffsrecht entsprechend der Befehlsbeschreibung für chmod auf dem FTP-Server. Informationen darüber, welche servereigenen Befehle unter FTP zulässig sind, sollten sich mit help, site help, remotehelp oder remotehelp site erkunden lassen. Beispiel einer solchen Abfrage bei bestehender FTP-Verbindung:

ftp>
214-The following commands are recognized (* =>'s unimplemented).
USER    PASS    ACCT*   CWD     XCWD    CDUP    XCUP    SMNT*
QUIT    REIN*   PORT    PASV    EPRT    EPSV    TYPE    STRU
MODE    RETR    STOR    STOU    APPE    ALLO*   REST    RNFR
RNTO    ABOR    DELE    MDTM    RMD     XRMD    MKD     XMKD
PWD     XPWD    SIZE    LIST    NLST    SITE    SYST    STAT
HELP    NOOP    FEAT    OPTS    ADAT*   AUTH*   CCC*    CONF*
ENC*    MIC*    PBSZ*   PROT*
214 Direct comments to ftp@provider.net
ftp> remotehelp site
214-HELP
CHGRP
214 CHMOD
ftp>

In diesem Fall ermöglicht der FTP-Server nach SITE die Kommandos CHGRP, CHMOD und vielleicht auch HELP. Außerdem wird eine E-Mail-Adresse zur Abgabe von Kommentaren angeboten.

Ist man jedoch mit dem FTP-Client von Microsoft unterwegs, nützt die Unterstützung des SITE-Befehls durch den FTP-Server nichts, denn dieser FTP-Client lässt ihn nicht durch (vergleiche Befehlsbeschreibung weiter oben).

Letztes Upload: 23.08.2021 um 18:18:41 • Impressum und Datenschutzerklärung