Inhaltsverzeichnis

curlftpfs

curlftpfs 'Benutzername:Passwort@ftp-server/pfad_auf_dem_server/' /media/peer.st 
umount: fusermount -u /media/peer.st/

FTP

ftp://Benutzername:Passwort@ftp-server.org

Das File Transfer Protocol (engl. für "Dateiübertragungsverfahren", kurz FTP), ist ein in RFC 959 spezifiziertes Netzwerkprotokoll zur Dateiübertragung über TCP/IP-Netzwerke. FTP ist in der Anwendungsschicht des TCP/IP Protokollstapels angesiedelt. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client zum Server (Upload) oder clientgesteuert zwischen zwei Servern zu übertragen.

Anders als z.B. HTTP benutzt FTP zur Kommunikation mehr als eine Verbindung: Zunächst wird zum Port 21 des Servers, dem Control Port, eine Verbindung zur Authentifizierung und Befehlsübertragung aufgebaut. Hier reagiert der Server auf jeden Befehl des Clients mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Zur eigentlichen Datenübertragung wird dann im Bedarfsfall eine separate Verbindung initiiert. FTP kennt dazu zwei Modi:

- Beim Active Mode baut der Server von seinem Port 20, dem Data Port, eine Datenverbindung zu einem vom Client gewählten Endpunkt auf. Dieser Endpunkt ist typischerweise ein Port des Clients der jenseits 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP).

Die Kommunikation mit Befehlen erfolgt auf dem Port 21. Man spricht auch von der Steuerung "Out of Band". Somit bleibt es möglich, dass während der Übertragung von Daten die Partner noch immer miteinander kommunizieren können.

- Beim Passive Mode baut der Client eine Datenverbindung zum vom Server gewünschten Port auf. Hier wird typischerweise von beiden Seiten ein Port jenseits 1023 benutzt.

Diese Technik wird eingesetzt, wenn der Client z.B. hinter einem Router sitzt, da ihm nicht eindeutig eine IP-Adresse zugeordnet werden kann.

Befehle

Cron job to upload a file via FTP

#!/bin/sh
cd [source directory]
ftp -n [destination host]<<END
user [user] [password]
put [source file]
quit
END