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 |
---|---|
-v | Unterdrückt die Ausgabe der Antworten des FTP-Servers. |
-n | Unterbindet die automatische Anmeldung bei erstmaliger Verbindung. |
-i | Schaltet bei der Übertragung mehrerer Dateien die wiederholte Anforderung von Eingaben durch den Benutzer ab. |
-d | Ermöglicht die Fehlersuche (Debugging), gibt sämtliche ftp-Befehle aus, die zwischen Client und Server ausgetauscht werden. |
-g | Unterdrückt die Verwendung von Platzhalterzeichen für Datei-und Pfadnamen auf dem Client. (Siehe den FTP-Befehl glob.) |
-s:dateiname | Kennzeichnet eine Textdatei mit ftp-Befehlen, die automatisch nach dem Start von ftp ausgeführt werden. |
host | Bezeichnet 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: 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: 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 byeDer 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. |
Befehl | Bedeutung |
---|---|
! | 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. |
append | Weitere 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. |
ascii | Stellt ASCII als Dateiübertragungstyp ein. |
bell | Bewirkt ein akustisches Signal nach jedem abgeschlossenen FTP-Befehl. Standardmäßig ertönt kein Signal. |
binary | Stellt binär als Dateiübertragungstyp ein. |
bye | Beendet die FTP-Sitzung mit dem FTP-Server und den FTP-Clienten. |
cd | Wechselt das Arbeitsverzeichnis auf dem FTP-Server. |
close | Beendet die FTP-Sitzung mit dem FTP-Server, der FTP-Client wird jedoch nicht beendet. |
debug | Schaltet 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. |
delete | Weitere Eingaben: remote_datei Löscht angegeben Datei auf dem FTP-Server. |
dir | Listet Dateien und Verzeichnisse des FTP-Servers auf. |
disconnect | Beendet die Verbindung mit dem FTP-Server und kehrt zur ftp-Eingabeaufforderung zurück. Identisch mit close. |
get | Weitere Eingaben: remote_datei Kopiert eine Datei vom FTP-Server auf den FTP-Client unter Verwendung des eingestellten Dateiübertragungstyps. |
glob | Unterdrückt bzw. ermöglicht die Verwendung von Platzhalterzeichen für Datei- und Pfadnamen auf dem FTP-Server. Standardmäßig ist dies möglich. |
hash | Schaltet die Ausgabe des Doppelkreuzes (#) bei jedem übertragenen Datenblock ein bzw. aus. Ein Datenblock ist 2048 Bytes lang. Standardmäßig werden keine Hash-Zeichen ausgegeben. |
help | Gibt 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. |
lcd | Weitere 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. |
literal | Sendet ausgeschriebene Parameter an den FTP-Server und erwartet einen einzelnen FTP-Exitcode. |
ls | Zeigt den Inhalt des aktuellen Serververzeichnisses an. |
mdelete | Löscht Dateien auf dem FTP-Server. |
mdir | Gibt eine Liste der Dateien und Unterverzeichnisse eines Verzeichnisses des FTP-Servers aus. Hier können mehrere Dateien zugleich angegeben werden. |
mget | Kopiert Dateien des FTP-Servers auf den FTP-Clienten. Es wird der momentan eingestellte Dateiübertragungstyp verwendet. |
mkdir | Weitere Eingaben: remote_verzeichnis Legt ein neues Verzeichnis auf dem FTP-Server an. |
mls | Gibt eine abgekürzte Liste der Dateien und Unterverzeichnisse des FTP-Servers aus. |
mput | Kopiert Dateien vom FTP-Clienten auf den FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet wird. |
open | Weitere 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 |
prompt | Schaltet 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. |
put | Weitere Eingaben: lokale_Datei Kopiert eine Datei vom FTP-Clienten zum FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet. |
pwd | Zeigt das aktuelle Verzeichnis des FTP-Servers an. |
quit | Beendet die FTP-Sitzung mit dem FTP-Server und beendet anschließend den FTP-Clienten. |
quote | Sendet ausgeschriebene Parameter an den FTP-Server und erwartet einen einzelnen FTP-Antwortcode. Entspricht literal. |
recv | Weitere 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. |
remotehelp | Zeigt die Hilfe des FTP-Servers an, sofern der FTP-Server dies Kommando unterstützt. |
rename | Weitere Eingaben: alter_remote_datei neue_remote_datei Umbenennung von Dateien oder Verzeichnissen auf dem FTP-Server. |
rmdir | Löscht ein Verzeichnis auf dem FTP-Server. |
send | Weitere Eingaben: lokale_Datei Kopiert eine Datei des FTP-Clienten auf den FTP-Server. Es wird der momentan eingestellte Dateiübertragungstyp verwendet. Entspricht put. |
status | Zeigt den aktuellen Status von FTP-Verbindungen und von Schaltern an. |
trace | Schaltet die Paketverfolgung ein, wodurch sich die Route eines jeden Pakets bei der Ausführung eines ftp-Befehls feststellen lässt. |
type | Ggf. 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. |
user | Teilt dem FTP-Server den Benutzernamen bzw. Benutzeraccount mit. Der FTP-Server möchte anschließend das Passwort dieses Benutzers erfahren. |
verbose | Schaltet 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 DateizugriffsrechtenBeim 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). |