Kapitel 11. Internet
Zurück | 11.4 Dateitransfer | Weiter

## 11.4 Dateitransfer

### 11.4.1 ftp

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.

### 11.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).

#### 11.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.

#### 11.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.

#### 11.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.

### 11.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 11.36. 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

Zurück | Nach oben | Weiter
11.3 E-Mail | Zum Anfang | 11.5 Eigene Homepage

© 1999-2006 Frank Ronneburg - Dieser Inhalt ist unter einem Creative Commons Namensnennung - Nicht-kommerziell - Keine Bearbeitung Lizenzvertrag lizenziert (creativecommons.org/licenses/by-nc-nd/2.0/de/legalcode).