Dateitransfer

ftp

Um Dateien zwischen verschiedenen Rechnern kopieren zu können, wurde das Protokoll ftp (File Transfer Protocol) geschaffen. 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 Downloads von Dateien über einen Webbrowser. Häufig zeigen solche Links auf Webseiten auch direkt auf sogenannte 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, welches einige Arbeitsschritte vereinfacht.

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

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!
 

...
Starten Sie das Programm ftp und geben Sie gleich dahinter den Namen des Servers an, von dem Sie die Datei kopieren möchten. Alternativ können Sie auch zuerst das Programm ohne Servernamen starten und danach mit dem Befehl open ftp.kernel.org die Verbindung herstellen. Nach kurzer Zeit sollten Sie nach einem Loginnamen gefragt werden. Wenn Sie auf dem Zielrechner über einen eigenen Zugang verfügen und eine Datei aus einem nicht öffentlichen Bereich kopieren möchten, geben Sie hier Ihren Benutzernamen und danach Ihr Paßwort an. Achtung: Bedenken Sie, daß das FTP-Protokoll keinerlei Verschlüsselung von Daten vornimmt! Ihr Benutzername und vor allem auch das Paßwort 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 Paßwort Ihre eigene E-Mail-Adresse verwenden.

Nach erfolgreichem Login, erhalten Sie die Meldung, daß es sich bei dem entfernten Rechner um ein Unix-System handelt und daß 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:

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, daß Sie normalerweise nicht in jedes beliebige Verzeichnis auf einem FTP-Server schreiben dürfen. Eine Übertragung von Dateien auf einen Server setzt immer die passenden Zugriffsrechte voraus.

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

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 (zur Verwaltung von Lesezeichen) und ncftpbatch (um größere Downloads zu organisieren).

gFTP

Eine sehr leistungsfähige Alternative zu der Kommandozeilen-Version des Programms ftp stellt das Programm gFTP 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.

gFTP ist so programmiert, daß Sie mehrere FTP-Verbindungen gleichzeitig öffnen können (multithreaded) und somit nicht warten müssen, bis ein Download beendet ist, um einen weiteren zu beginnen. Praktisch ist auch, daß Sie Dateien von FTP- oder HTTP-Servern (Webserver) downloaden können. gFTP unterstützt weiterhin den Download von kompletten Verzeichnissen, und abgebrochene Downloads können fortgesetzt werden.

Weitere Funktionen von gFTP sind: