FTP-Interaktion
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Häufig wird zum Übertragen von Dateien über ein Netzwerk das FileTransferProtocol verwendet. Hier gibt es einen kurzen Einblick, wie man in Skripten in verschiedenen Programmiersprachen dieses Protokoll verwenden kann. Die Skripte zeigen das grundsätzliche Vorgehen, individuelle Anpassungen sind vor der tatsächlichen Nutzung notwendig.
Bash¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/bin/bash # Diese Datei: lokal_file=/tmp/test1 # ... wird hochgeladen nach: remote_file=/var/tmp/remote_test1 # ftp starten und die Befehle mit einem here-doc angeben: ftp -n <<EOFTP open zielhost user uid4711 null8fuenf10 bin put $lokal_file $remote_file quit EOFTP |
Zu möglichen Anweisungen für den ftp-Befehl s. man ftp.
Die Zugangsdaten kan man auch in der Datei .netrc im home-Verzeichnis ablegen (s. man netrc).
1 2 3 4 | # ~/.netrc machine zielhost login uid4711 password null8fuenf10 |
Ruby¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | require 'net/ftp' ftp = Net::FTP.new('ftp.server.tld') ftp.login('user','pass') # für anonymen Login einfach die Parameterliste weglassen ftp.list ftp.getbinaryfile('xyz.gz') ftp.gettextfile('xyz-license.txt') ftp.close |
Python¶
1 2 3 4 5 6 7 8 9 10 | from ftplib import FTP ftp = FTP("ftp.server.tdl") ftp.login("user","pass") # für anonymen Login keine Parameter angeben files = ftp.retrlines("LIST") # Verzeichnisinhalt nun in der Variable files fp = file("test.html","r") # test.html lesend öffnen ftp.cwd("daten") # Ins "daten" Verzeichnis wechseln ftp.storlines("STOR test.html", fp) # test.html unter dem Namen test.html speichern ftp.quit() # Verbindung beenden f.close() # Dateiobjekt schließen |
Perl¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/usr/bin/perl -w use Net::FTP; $ftp = Net::FTP->new("kernel.org"); # Verbinden mit Kernel.org $ftp->login; # Einloggen: Ohne Angaben wird automatisch Anonymous genommen $verz = $ftp->pwd(); # Speichert das aktuelle Verzeichnis in $verz print "Wir befinden uns in $verz\n"; $ftp->cwd("/pub"); # Wechselt in das Verzeichnis /pub @files = $ftp->ls; # Liest den Inhalt des aktuellen Verzeichnisses. Dateinamen werden in Array gespeichert. print "$_\n" for @files; # Gibt den Inhalt des Arrays Zeilenweise aus. $ftp->binary; # Wechselt zum Binary Modus $ftp->ascii; # Wechselt zum ASCII Modus $ftp->cdup; # Wechselt zum ueberligendem Verzeichnis. $ftp->get("welcome.msg"); # Lädt die Datei welcome.msg herunter. $ftp->quit; # Beendet die verbindung |