Unter dem Namen NcFTP werden gleich eine ganze Reihe von Programmen zusammengefasst, die den File Transfer auf der Kommandozeile erleichtern. Dazu gehören
- der Client NcFTP, ein FTP-Browser,
- NcFTPGet und NcFTPPut, nicht interaktive File-Transfer-Programme,
- NcFTPLs, ein Tool, um Verzeichnisse auf dem Server über FTP ohne interaktive Shell anzuzeigen,
- und NcFTPBatch und NcFTPSpooler. Diese Programme arbeiten Hand in Hand.
NcFTP läuft nicht nur auf den verschiedenen Unix-Plattformen, sondern kann auch auf anderen Betriebssystemen zum Einsatz kommen. Die aktuelle Version ist 3.1.3 (vom 27.03.2002); einige Distributionen enthalten noch die ältere Version 2.4.3, die sich in einigen Punkten von der aktuellen unterscheidet. Um die hier vorgestellten Kommandos und Parameter richtig nachvollziehen zu können, empfiehlt sich ein Update des Programmes auf eine 3.X-Version.
Der Client wird mit dem Aufruf ncftp auf der Kommandozeile gestartet. Statt des üblichen Promptes sehen Sie als Eingabeaufforderung ncftp>. Von hier aus geht es weiter. Um eine Verbindung zu einem FTP-Server aufzubauen, verwenden Sie das Kommando open oder die Kurzform o:
ncftp> open ftp.debian.de Connecting to 141.76.2.4… ProFTPD 1.2.4 Server (FTP-Server ftp.de.debian.org, Germany) [ftp.de.debian.org] Logging in… … Anonymous access granted, restrictions apply. Logged in to ftp.debian.de. ncftp / > _
Hier sehen Sie, dass Sie erfolgreich eingeloggt sind und sich im Wurzelverzeichnis des FTP-Servers befinden. Es handelt sich um einen sogenannten anonymous-FTP-Server; angemeldet sind Sie unter dem Gast-Account anonymous. Die meisten Server verlangen zusätzlich Ihre E-Mail-Adresse als Passwort für einen solchen Gastzugang. Diese sollten Sie aus Höflichkeit und für statistische Zwecke ehrlich angeben. Wenn kein anonymer Zugang eingerichtet ist, erhalten Sie eine Meldung der Form "Can't set guest privileges", "User anonymous access denied" etc. Sollten Sie einen Account für den Server haben, können Sie sich mit open -u username rechnername einloggen und das zugehörige Passwort eingeben. Diesen Schritt können Sie durch den Parameter -p (für "password") abkürzen; der vollständige Aufruf heißt dann also:
ncftp> open -u username -p password rechnername
Viele der bekannten Shell-Kommandos (cd, pwd, ls) funktionieren wie gewohnt, sind aber tatsächlich innerhalb des Programms neu implementiert. Tippen Sie help, erhalten Sie eine Übersicht der verfügbaren Befehle. ls zeigt zum Beispiel an, welche Dateien und Verzeichnisse auf dem Server liegen:
ncftp / > ls HEADER.html debian-archive/ debian-ddtp/ debian-non-US/ debian/ debian-cd/ pub/
Um in das Verzeichnis debian-archive/ hineinzuwechseln, tippen Sie cd debian-archive; am veränderten Prompt ncftp /debian-archive > sehen Sie, wo Sie sich befinden. In diesem Verzeichnis liegt eine Datei README - um diese anzuschauen, müssen Sie sie nicht extra auf Ihren eigenen Computer übertragen, sondern können less README verwenden.
Eines der wirklich praktischen Features ist die "file name completion", die Sie schon von der bash kennen: Für den eben gezeigten Befehl less README reicht es, wenn Sie less R [Tab] tippen, da in diesem Verzeichnis nur eine Datei mit einem großen "R" beginnt. Sobald der Dateiname nämlich eindeutig ist, wird er vervollständigt. Im Hintergrund legt NcFTP dazu eine Liste der Dateien mit dem Kommando dir an, um die Namen für die Completion einzulesen. Abhängig von der Performance des Netzwerkes und der Menge der Dateien im Verzeichnis kann das schon mal etwas länger dauern.
Dateien übertragen Sie mit dem Befehl get auf Ihren eigenen Rechner. Eine Statusanzeige verrät dabei den Fortschritt des Downloads. Solange dieser noch läuft, können Sie jedoch keine weiteren Kommandos ausführen. Daher bietet NcFTP das Kommando bgget - "bg" steht hier für "background". Selbst, wenn Sie sich ausloggen, geht der Download weiter. Ebenso gibt es für den Befehl put (eine Datei von Ihrem Rechner auf einen anderen transferieren) die Alternative bgput, um einen Upload in den Hintergrund zu stellen. Mit dem Kommando jobs kontrollieren Sie, welche Aufträge im Hintergrund warten. Diese Downloads oder Uploads starten Sie mit bgstart - Sie erhalten den Hinweis:
ncftp / > bgstart Background process started. Watch the "/home/huhn/.ncftp/spool/log" file to see how it is progressing.
Ein Blick in das Logfile verrät Ihnen:
2002-04-24 14:23:07 [026858] | Cmd: RETR datei.tar.gz 2002-04-24 14:23:07 [026858] | 150: Opening BINARY mode data connection for datei.tar.gz (2706 bytes). 2002-04-24 14:23:07 [026858] | 226: Transfer complete. 2002-04-24 14:23:07 [026858] | Succeeded downloading datei.tar.gz.
In der zweiten Zeile steht der Hinweis: "Opening BINARY mode" - das ist die Standardeinstellung von NcFTP für den Dateitransfer. Das bedeutet, dass an den Daten bei der Übertragung keinerlei Änderungen vorgenommen werden. Der ASCII-Modus (Wechsel mit den Kommandos type ascii oder type binary) korrigiert hingegen bei Textdateien den unterschiedlichen Zeilenumbruch verschiedener Betriebssysteme. Unter Linux werden Sie diesen Modus in der Regel nicht benötigen.
Ich will alles!
Das Kommando get kann noch mehr: Sie können mehrere Dateien übertragen und sogar Wildcards verwenden. Liegen auf dem FTP-Server beispielsweise zwei Dateien README und README.old, können Sie entweder get README README.old oder get README@L: * verwenden. Weiterhin kann über das Flag -z eine Datei geholt und lokal unter einem anderen Namen gespeichert werden. Um README.old vom Server auf dem lokalen Rechner unter dem Namen README.alt abzuspeichern, geben Sie get -z README.old README.alt ein.
NcFTP versucht, abgebrochene Downloads wieder aufzunehmen: Sollte die Übertragung einer Datei einmal unterbrochen worden sein, versucht das Programm beim nächsten Anlauf, nur die fehlenden Teile zu holen ("reget"). Sollte dieses Verhalten nicht gewünscht sein, schalten Sie es mit dem Flag -f ab. Ebenso lassen sich Daten an eine bereits vorhandene Datei anhängen. Mit get -A datei.log (für englisch "append") laden Sie die Datei herunter und hängen sie an eine gleichnamige, lokale Datei an.
Besonders praktisch ist, dass Sie mit NcFTP ganze Verzeichnisstrukturen rekursiv übertragen können: Mit get -R verzeichnis kopieren Sie das Verzeichnis, eventuelle Unterverzeichnisse und alle enthaltenen Dateien auf den lokalen Computer.
NcFTP kommt mit ein paar zusätzlichen "l"-Kommandos. Das "l" steht für "lokal" - hier gibt es ein paar Befehle, mit denen Sie aus NcFTP heraus auf dem lokalen Rechner Kommandos ausführen können. Mit lcd wechseln Sie das Verzeichnis auf dem eigenen Computer. Auch hier funktioniert die oben erwähnte "file completion". Der Befehl lls ruft auf dem lokalen Rechner das Kommando /bin/ls auf - so überprüfen Sie schnell den Inhalt des Verzeichnisses, in das Sie etwas vom Server herunterladen möchten. Auch ein lmkdir (für "make directory") steht zur Verfügung, um schnell ein neues Unterverzeichnis anlegen zu können, ohne NcFTP beenden zu müssen.
Wenn Sie die Verbindung zu einem Server beenden (close) oder NcFTP mit quit verlassen, fragt das Programm:
You have not saved a bookmark for this site. Would you like to save a bookmark to: ftp://ftp.debian.de Save? (yes/no)
Bestätigen Sie dies mit "yes", schlägt das Programm einen Namen für den Server vor ("Enter a name for this bookmark, or hit enter for 'debian':") und speichert den Eintrag. Die vorhandenen Bookmarks können Sie selbst verwalten: Tippen Sie dazu bookmarks. Sie gelangen dann in einen Editor, der leicht zu bedienen ist. Im Gegensatz zu den früheren Versionen des Programmes, das Passwörter im Klartext abspeicherte, werden diese nun verschlüsselt in ~/.ncftp/bookmarks abgelegt.



