10.4 Dateitransfer

10.4.1 ftp
10.4.2 ncftp
10.4.3 gFTP

10.4.1 ftp

e Das Protokoll FTP (File Transfer Protocol) wurde entwickelt, um Dateien zwischen verschiedenen Rechnern kopieren zu können. Um die Sache nicht unnötig zu verkomplizieren, wurde auch das Kommando für diese Art der Datenübertragung ftp genannt. Sicher kennen Sie schon die Funktion des Herunterladens von Dateien über einen Webbrowser durch Anklicken eines Links. Häufig zeigen Links auf Webseiten auch direkt auf so genannte FTP-Server.

Unter Debian GNU/Linux können Sie in einer Shell Dateien von einem FTP-Server auf Ihren Rechner kopieren. Das Kommando ftp ist nicht sehr komfortabel, erfüllt aber seinen Zweck. Alternativ können Sie auch das Programm ncftp installieren, das einige Arbeitsschritte vereinfacht.

Hier eine kleine Beispielsitzung mit dem Programm ftp; wir besorgen uns den neuesten Kernel-Patch.

Starten Sie das Programm ftp, indem Sie auf der Kommandozeile den Namen des Servers angeben, von dem Sie die Dateien kopieren möchten.

fr@debian:~$ ftp ftp.kernel.org
Connected to zeus.kernel.org.
220 ProFTPD 1.2.0pre10 Server (ProFTPD) [zeus.kernel.org]
Name (ftp.kernel.org:fr): ftp      
331 Anonymous login ok, send your complete e-mail address as password.
Password:
230-			    Welcome to the
 
 			LINUX KERNEL ARCHIVES
 			    ftp.kernel.org
 
 		    "Much more than just kernels"
 
 	   IF YOU'RE ACCESSING THIS SITE VIA A WEB BROWSER
 		PLEASE USE THE HTTP URL BELOW INSTEAD!
 

...

Alternativ können Sie auch zuerst das Programm ohne Servernamen starten und danach mit dem Befehl open <SERVER>, zum Beispiel also open ftp.kernel.org, die Verbindung herstellen. Nach kurzer Zeit sollten Sie nach einem Loginnamen gefragt werden. Wenn Sie auf dem Zielrechner über ein eigenes Zugangskonto verfügen und eine Datei aus einem nicht öffentlichen Bereich kopieren möchten, geben Sie hier Ihren Benutzernamen und danach Ihr Passwort an. Achtung: Bedenken Sie, dass das FTP-Protokoll keinerlei Verschlüsselung von Daten vornimmt! Ihr Benutzername und vor allem auch das Passwort werden im Klartext übertragen und können unter Umständen von einem Angreifer (Hacker) mitgelesen werden. Wenn Sie Daten aus nicht-öffentlichen Bereichen kopieren möchten, verwenden Sie besser das Kommando scp (Secure Copy) aus dem Paket ssh.

Bei einem Zugriff auf einen öffentlichen (public) FTP-Server können Sie immer den Benutzernamen „ftp“ oder „anonymous“ sowie als Passwort Ihre eigene E-Mail-Adresse verwenden.

Nach erfolgreichem Login erhalten Sie die Meldung, dass es sich bei dem entfernten Rechner um ein Unix-System handelt und dass der Übertragungsmodus auf binäre Übertragung gesetzt wurde. Eine Übertragung von Dateien im Textmodus (ASCII) ist nur in den seltensten Fällen sinnvoll; Sie können auch Textdateien problemlos im Binärmodus übertragen.

Sie können nun viele der normalen Kommandos, die Sie bereits aus der normalen Unix-Shell kennen, verwenden. Beispiele:

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
lrwxrwxrwx   1 hpa      ftpadmin       18 Nov  5  1999 debian -> 
                                                        pub/mirrors/debian
lrwxrwxrwx   1 hpa      ftpadmin       21 Nov  9  1999 debian-cd -> 
                                                        pub/mirrors/debian-cd
dr-xr-x---   2 mirrors  ftpadmin     4096 Oct 12  1999 for_mirrors_only
drwxr-xr-x   7 korg     korg         4096 Aug 11 10:19 pub
lrwxrwxrwx   1 hpa      ftpadmin       18 Nov  8  1999 redhat -> 
                                                        pub/mirrors/redhat
lrwxrwxrwx   1 root     root           10 Oct 28  1999 welcome.msg -> 
                                                        pub/README
226 Transfer complete.
ftp> cd /pub/linux/kernel
250 CWD command successful.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
-r--r--r--   1 korg     korg        18458 Mar 12  1994 COPYING
-r--r--r--   1 korg     korg        36981 Sep 16  1996 CREDITS
drwxr-xr-x   4 korg     korg         4096 Oct  5  1999 Historic
-r--r--r--   1 korg     korg        12056 Sep 16  1996 README
drwxr-xr-x   2 korg     korg         4096 Apr 14 11:55 SillySounds
drwxr-xr-x   4 korg     korg         4096 Jul 10 02:34 crypto
drwxr-xr-x  18 korg     korg         4096 Aug  7 08:04 people
drwxr-xr-x   4 korg     korg         4096 Mar  7 10:38 ports
drwxr-xr-x   3 korg     korg        12288 Aug 17 23:40 testing
drwxr-xr-x   2 korg     korg         4096 Oct  5  1999 v1.0
drwxr-xr-x   2 korg     korg        16384 Oct  5  1999 v1.1
drwxr-xr-x   2 korg     korg         4096 Oct  5  1999 v1.2
drwxr-xr-x   2 korg     korg        28672 Oct  5  1999 v1.3
drwxr-xr-x   2 korg     korg        12288 Oct  5  1999 v2.0
drwxr-xr-x   2 korg     korg        36864 Oct  5  1999 v2.1
drwxr-xr-x   2 korg     korg         4096 Jun 28 10:52 v2.2
drwxr-xr-x   2 korg     korg        16384 May 23 15:51 v2.3
drwxr-xr-x   2 korg     korg         4096 Aug  9 19:26 v2.4
226 Transfer complete.
ftp> cd v2.4
250 CWD command successful.

Wie Sie sehen, funktionieren die Kommandos ls und cd wie gewohnt. Natürlich können Sie beim Kommando ls auch Wildcards verwenden:

ftp> ls L*
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
-rw-r--r--   1 korg     korg            0 Aug  9 19:16 LATEST-IS-2.4.0-test6
ftp> ls *test6*
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
-rw-r--r-- 1 korg korg        0 Aug 9 19:16 LATEST-IS-2.4.0-test6
-rw-r--r-- 1 korg korg 18106527 Aug 9 19:16 linux-2.4.0-test6.tar.bz2
-rw-r--r-- 1 korg korg      248 Aug 9 19:16 linux-2.4.0-test6.tar.bz2.sign
-rw-r--r-- 1 korg korg 22299559 Aug 9 19:16 linux-2.4.0-test6.tar.gz
-rw-r--r-- 1 korg korg      248 Aug 9 19:16 linux-2.4.0-test6.tar.gz.sign
-rw-r--r-- 1 korg korg   450477 Aug 9 19:16 patch-2.4.0-test6.bz2
-rw-r--r-- 1 korg korg      248 Aug 9 19:16 patch-2.4.0-test6.bz2.sign
-rw-r--r-- 1 korg korg   537149 Aug 9 19:16 patch-2.4.0-test6.gz
-rw-r--r-- 1 korg korg      248 Aug 9 19:16 patch-2.4.0-test6.gz.sign
226 Transfer complete.
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
ftp> get patch-2.4.0-test6.bz2
local: patch-2.4.0-test6.bz2 remote: patch-2.4.0-test6.bz2
200 PORT command successful.
150 Opening BINARY mode data connection for patch-2.4.0-test6.bz2 
(450477 bytes).
#########
...

Hier finden wir gleich mehrere neue Kommandos: hash schaltet die Anzeige des Übertragungsfortschrittes ein, für 1024 Byte wird ein Zeichen „#“ gesetzt. Wenn Sie nun die Datei patch-2.4.0-test6.bz2 auf Ihren Rechner übertragen wollen, benutzen Sie hierzu das Kommando get mit dem gewünschten Dateinamen. Wenn Sie mehrere Dateien nacheinander übertragen wollen, können Sie das Kommando mget verwenden; hierbei können Sie Wildcards verwenden.

Natürlich können Sie auch Dateien von Ihrem Rechner zu einem entfernten Rechner übertragen; hierzu dient das Kommando put beziehungsweise mput. Beachten Sie hierbei, dass Sie normalerweise nicht in jedes beliebige Verzeichnis auf einem FTP-Server schreiben dürfen. Das Übertragen von Dateien auf einen Server setzt immer die passenden Zugriffsrechte voraus.

Wenn Sie ein wenig mit dem „klassischen“ FTP gearbeitet haben, werden Sie bemerken, dass es nicht sehr komfortabel zu handhaben ist. Hier kommt als textbasierte Alternative das Programm ncftp oder eine grafische Variante ins Spiel.

10.4.2 ncftp

Das Paket ncftp ist ein sehr leistungsfähiger Ersatz für das ursprüngliche Programm ftp und besteht neben dem eigentlichen Programm zur Datenübertragung (ncftp) noch aus den Programmen ncftpget, ncftpput und ncftpls sowie ncftpbookmark (zum Verwalten von Lesezeichen) und ncftpbatch (zum Organisieren von größeren bzw. komplexeren Datenübertragungen).

10.4.2.1 ncftp

Natürlich verfügt ncftp über alle Funktionen, die Sie von ftp kennen. Sehr praktisch ist, dass Sie, wie Sie es aus der Standard-Shell von Debian GNU/Linux kennen, Dateinamen mit der TAB-Taste vervollständigen können und Kommandos noch einmal über die Cursortasten aufrufen und verändern können.

Wenn ncftp gestartet ist, erhalten Sie mit dem Kommando help eine Übersicht der Kommandos. Geben Sie hinter dem Kommando help an, zu welchem Kommando Sie eine Hilfe wünschen. Das Kommando help showall zeigt noch einige weitere Kommandos.

10.4.2.2 ncftpput und ncftpget

Diese beiden Kommandos sind eine Schnittstelle zu ncftp und können über Skripte gesteuert werden. Sie dienen zum Hinauf- bzw. Herunterladen von Dateien.

10.4.2.3 ncftpls

Mit diesem Programm können Sie sich den Inhalt eines FTP-Servers ansehen, ohne ein interaktives Programm starten zu müssen.

10.4.3 gFTP

Das Programm gFTP stellt eine sehr leistungsfähige Alternative zu der Kommandozeilen-Version des Programms ftp dar. Sie müssen sich hierbei nicht um die diversen Kommandos kümmern und können, ähnlich wie bei einem Dateimanager, Dateien oder Verzeichnisse kopieren.

Abbildung 10.36. gFTP

gFTP

gFTP ist so programmiert, dass Sie mehrere FTP-Verbindungen gleichzeitig öffnen können (multithreaded) und somit nicht warten müssen, bis eine Datenübertragung beendet ist, um eine weitere zu beginnen. Praktisch ist auch, dass Sie Dateien mit FTP- oder HTTP-Servern (Webservern) austauschen können. gFTP unterstützt weiterhin die Übertragung von kompletten Verzeichnissen, und abgebrochene Übertragungen können fortgesetzt werden.

Weitere Funktionen von gFTP sind:

  • Lesezeichen zum schnellen Zugriff auf Server

  • Caching“ von Verzeichnissen

  • Drag & Drop“-Unterstützung

  • Verbindung auch per Kommandozeile: gftp user:pass@ftp-site:port/directory

  • Ansehen und Verändern von Dateien auf dem entfernten Rechner

  • Oberfläche in vielen Sprachen, auch Deutsch