11.3 FTP
Das File Transfer Protocol, FTP, wird, wie der Name schon sagt, zur Übertragung von Dateien verwendet.
Dabei ist es egal, ob es sich hierbei um Binärdateien oder um ASCII-Dateien handelt. FTP ist ein recht schnelles, aber altes Protokoll mit einigen Tücken. Trotzdem ist es noch sehr weit verbreitet, und daher gehört ein FTP-Client zum Standardumfang eines Unix-artigen Systems, ja sogar zum Standardumfang von Windows. <Der Vollständigkeit halber sei erwähnt, dass Windows auch einen Telnet-Client, diverse andere Clients und diverse Konsolen-Administrationsprogramme enthält.>
Ähnlich wie bei Telnet loggt man sich auf einem FTP-Server zunächst mit einem Benutzernamen und Passwort ein. Es gibt auch Fälle, in denen solch ein Login nicht nötig ist. Server, bei denen dies der Fall ist, unterstützten den sogenannten »anonymous«-Account. Dieser ermöglicht es allen Besuchern des Servers, auf bestimmte, freigegebene Dateien zuzugreifen.
Der Browser versucht, sich bei FTP-Servern in der Regel automatisch als »anonymous« anzumelden. In Konsolen-Clients gibt man entweder den Login »ftp« oder »anonymous« ein. Falls noch nach einem Passwort gefragt wird, sollte man seine Mail-Adresse eingeben, worauf man aber auch oft verzichten kann.
ftp
Der Konsolen-Client unter Unix nennt sich ftp. Startet man ihn, erscheint ein ftp>-Prompt. Entweder übergibt man die Adresse des Hosts, mit dem man sich verbinden will, beim Aufruf als Parameter, oder man verwendet das Kommando open, gefolgt von einem Hostnamen.
$ ftp 192.168.0.1
Connected to 192.168.0.1.
220 eygo.sun FTP server (Version 6.6/OpenBSD) ready.
Name (192.168.0.1:cdp_xe): cdp_xe
331 Password required for cdp_xe.
Password:
230- OpenBSD 3.6 (EYGO) #1: Mon Sep 5 17:51:54 CEST
2005
230-
230 User cdp_xe logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Listing 11.3 FTP-Login
Nach dem Login erscheint wieder der ftp>-Prompt. In diesem können diverse Befehle ausgeführt werden. Eine Übersicht der von Ihrem Client unterstützten Befehle erhalten Sie durch Eingabe von help. Wir werden im Folgenden nur die wichtigsten vorstellen.
- !Befehl Führt einen lokalen Befehl aus.
- lcd Wechselt im lokalen Dateisystem das Verzeichnis.
- pwd Zeigt das Arbeitsverzeichnis auf dem Server an.
- binary Wechselt in den Binärmodus. Viele Unix-Clients wechseln nach dem Login automatisch in diesen Modus. Dateien werden somit nicht in ASCII-Codierung übertragen.
- ascii ASCII-Modus. Dies ist eigentlich nur für Windows-Anwender von Bedeutung.
- cd <Verzeichnis> Wechselt das Arbeitsverzeichnis auf dem Server.
- get <Datei> Lädt eine Datei herunter.
- put <Datei> Lädt eine Datei auf den Server.
- del <Datei> Löscht eine Datei.
- ls/dir Zeigt den Verzeichnisinhalt auf dem Server an.
- chmod Setzt, wie von der Shell bekannt, Zugriffsrechte. Dieses Feature wird nur von einigen Unix-Servern unterstützt.
- by/bye Beenden einer FTP-Sitzung.
Hier eine kleine Beispielsitzung zur Verdeutlichung der wichtigsten Befehle:
ftp> pwd 257 "/home/cdp_xe" is current directory. ftp> lcd /tmp Local directory now /tmp ftp> get setne3.sh local: setne3.sh remote: setne3.sh 229 Entering Extended Passive Mode (|||61496|) 150 Opening BINARY mode data connection for 'setne3.sh' (295 bytes). 100% |***********************************| 295 00:00 226 Transfer complete. 295 bytes received in 0.18 seconds (1.59 KB/s) ftp> put setne3.sh local: setne3.sh remote: setne3.sh 229 Entering Extended Passive Mode (|||64013|) 150 Opening BINARY mode data connection for 'setne3.sh'. 100% |***********************************| 295 00:00 226 Transfer complete. 295 bytes sent in 0.20 seconds (1.47 KB/s) ftp> !rm setne3.sh ftp> by 221 Goodbye.
Listing 11.4 Fortsetzung der obigen FTP-Session
11.3.1 Grafische FTP-Clients
Neben diesen Konsolen-Clients gibt es allerdings noch weitaus komfortablere Clients für X11. Diese können Ihnen hübsche Fortschrittsbalken, multiple Verbindungen (und auch mehrere Downloads zur selben Zeit) ermöglichen und sehen in der Regel auch noch gut aus.
Browser, gftp
Als Alternativen stehen Ihnen dabei zum Beispiel der Firefox-Browser oder der KDE-Konqueror zur Verfügung. Dies sind allerdings keine reinen FTP-Clients, und der Konqueror ist zudem noch recht instabil, was FTP-Sessions anbelangt.
Besser wäre es da, wenn man auf gftp zurückgreift. gftp ist mittlerweile stabil, performant und kann mit so ziemlich jedem FTP-Server umgehen. <Leider sind z. B. Directory-Listings in ihrer Formatierung für FTP nicht standardisiert. Viele FTP- Clients haben mit dieser Misere ihre Schwierigkeiten. gftp unterstützt die Listingformate von UNIX, EPLF, Novell, MacOS, VMS, MVS und Windows.>
gftp ist in C geschrieben und verwendet Gtk+ für die grafische Schnittstelle. Es unterstützt neben FTP auch noch HTTP, HTTPS, SSH und FSP und kann FTP- und HTTP-Proxys benutzen. Außerdem gibt es im Programm »Bookmarks«, mit denen Sie zügig alte Verbindungen wieder aufbauen können.
Abbildung 11.1 gftp