Lftp
# Lftp

lftp ist ein freier und konsolenbasierter FTP-Client für Unix und unixoide Betriebssysteme wie Linux. Er gehört zu den umfangreichsten seiner Art. Autor und Initiator ist Alexander Lukyanov.

Neben FTP unterstützt das Programm die Protokolle FXP, HTTP, FISH, SFTP, HTTPS, FTPS und BitTorrent. Zusätzlich unterstützt lftp eine Fülle von Funktionen, darunter rekursives Spiegeln von Verzeichnisbäumen, Verwalten von Bookmarks, mehreren simultanen Sitzungen zu verschiedenen Servern in einer Shell (durch sogenannte „slots“), Zeitplanung von Transfers, Befehlswarteschlangen und ein Anpassen der nutzbaren Bandbreite.

Besonders hebt sich der Client durch die Bash-ähnliche Shell hervor, mit der man nicht nur effizient interaktiv arbeiten, sondern lftp auch durch Skripte interaktiv steuern kann. Sie kann optional über globale oder benutzerspezifische Konfigurationsdateien angepasst werden. Unter anderem sind Aliase, Skripte und ein benutzerdefinierter Prompt möglich.

Innerhalb der Shell dienen vorangestellte Ausrufezeichen als Escape-Symbole, d. h., sie werden nicht mit der lftp-Shell, sondern mit der Benutzer-Shell, von der lftp gestartet wurde, ausgeführt und somit lokal abgearbeitet. ls innerhalb von lftp bewirkt also ein Listing des FTP-Verzeichnisses, !ls hingegen, dass der Inhalt des lokalen Verzeichnisses angezeigt wird. Das Mischen beider Betriebsarten in Skripten oder Warteschlangen ermöglicht sehr komplexe automatisierte Transfervorgänge.

Zum Lieferumfang von lftp gehört auch noch lftpget, mit dem Dateien direkt heruntergeladen werden können.

## Beispiele

lftp -u BENUTZERNAME,KENNWORT -p 22 -c "cd ORDNERXY && put DATEIXY" sftp://SERVERADRESSE

Erklärung: Der Parameter „-u“ übergibt den Benutzernamen, mit dem man sich am entfernten Server anmelden möchte. Das Kennwort wird nach einem Komma angehängt. Sonderzeichen im Kennwort müssen mit \ markiert werden.

Der Parameter „-p“ gibt den Port an, auf dem der Remoteserver erreichbar ist. Dies anzugeben ist nur nötig, wenn der Remoteport vom Standard abweicht. Da SFTP-Server standardmäßig auf Port 22 lauschen, ist die Angabe „-p 22“ im oben genannten Beispiel nicht nötig, da lftp auch ohne diese Angabe zum Port 22 am SFTP-Server verbinden würde.

Nach dem Parameter „-c“ können Befehle spezifiziert werden, die lftp ausführt und sich danach beendet. Im Beispiel oben wechselt das Programm in das Verzeichnis ORDNERXY (durch den Befehl „cd ORDNERXY“) und führt danach (was durch die „&&“ angegeben wird) den Befehl „put DATEIXY“ aus, der die lokale Datei „DATEIXY“ auf den entfernten Server kopiert. Im Beispiel oben verbindet sich lftp zu einem SFTP-Server, was durch das sftp:// vor „SERVERADRESSE“ angegeben wird.

Im Gegensatz zu Parameter „-c“ können nach dem Parameter „-e“ Befehle spezifiziert werden, die lftp ausführt und sich danach nicht (!) beendet.

