FTP mit wput: Ganze Ordner- Ordnerstrukturen uploaden

wput (Windows CMD) – Ordner-strukturen via FTP uploaden: Wer unter Windows auf die Kommandozeile angewiesen ist, der wird feststellen, dass die ftp.exe keine Möglichkeit besitzt, ganze Verzeichnisse oder Verzeichnisbäume hoch- oder runterzuladen. Eine Abhilfe kann hier das Programm „wput“ bieten, mit dem man ganze Verzeichnisse hochladen kann.

Wenn ihr das Programm geladen habt dann entpackt die .zip einfach in folgendes Verzeichnis C:\Dokumente und Einstellungen\euername [Ihr könnt auch ein anderes nehmen dann vergesst aber nicht per cd euerverzeichnis ins das von euch gewählte Vereichnis zu wechseln denn sonst geht’s natürlich nicht]

So wenn ihr nun sagen wir mal das komplette Verzeichnis C:\Programme uploaden wollt dann sollte euer Befehl wie folgt aussehen

wput “C:/Programme/” ftp://BENUTZER:PASSWORT@192.168.1.1/public/
(Dieser Befehl schiebt alle Dateien und Unterverzeichnisse des Verzeichnisses C:\Programme auf den FTP-Server mit der IP „192.168.1.1“ und dort in das Unterverzeichnis „public“. Die “ dienen lediglich dazu das wget auch Verzeichnisse mit Leerstellen im Namen uppen kann.)

Um euch noch ein paar Befehle mehr zu zeigen hier noch ein weiteres Beispiel wie ein Befehl aussehen könnte…

wput -u -o logfile.txt “C:/Programme/” ftp://BENUTZER:PASSWORT@192.168.1.1/public/

(Dieser Befehl schiebt alle Dateien und Unterverzeichnisse des Verzeichnisses C:\Programme auf den FTP-Server mit der IP „192.168.1.1“ und dort in das Unterverzeichnis „public“. Das Befehlsparameter –u sagt wput das er alle vorhandenen Dateien deren Name = dem Namen der neuen Datei ist überschreiben soll. Das Parameter –o logfile.txt erzeugt eine Datei mit dem Namen logfile.txt in dieser stehen alle wichtigen Sachen Achtung : In der normalen Konsole ist nichts mehr zu sehen an Befehlen die ausgeführt werden)

Ich kann hier leider nicht für jeden Befehl ein Beispiel machen darum hier eine Liste mit allen Befehlen die wput unterstützt


Usage: wput [options] [file]... [url]...
url ftp://[username[:password]@]hostname[:port][/[path/][file]]

Startup:
-V, --version Display the version of wput and exit.
-h, --help Print this help-screen

Logging and input file:
-o, --output-file=FILE log messages to FILE
-a, --append-output=FILE append log messages to FILE
-q, --quiet quiet (no output)
-v, --verbose be verbose
-d, --debug debug output
-nv, --less-verbose be less verbose
-i, --input-file=FILE read the URLs from FILE
-s, --sort sorts all input URLs by server-ip and path
--basename=PATH snip PATH off each file when appendig to an URL
-I, --input-pipe=COMMAND take the output of COMMAND as data-source
-R, --remove-source-files unlink files upon successful upload

Upload:
--bind-address=ADDR bind to ADDR (hostname or IP) on local host
-t, --tries=NUMBER set retry count to NUMBER (-1 means infinite)
-nc, --dont-continue do not resume partially-uploaded files
-u, --reupload do not skip already completed files
--skip-larger do not upload files if remote size is larger
--skip-existing do not upload files that exist remotely
-N, --timestamping don't re-upload files unless newer than remote
-T, --timeout=10th-SECONDS set various timeouts to 10th-SECONDS
-w, --wait=10th-SECONDS wait 10th-SECONDS between uploads. (default: 0)
--random-wait wait from 0...2*WAIT secs between uploads.
--waitretry=SECONDS wait SECONDS between retries of an upload
-l, --limit-rate=RATE limit upload rate to RATE
-nd, --no-directories do not create any directories
-Y, --proxy=http/socks/off set proxy type or turn off
--proxy-user=NAME set the proxy-username to NAME
--proxy-pass=PASS set the proxy-password to PASS

FTP-Options:
-p, --port-mode no-passive, turn on port mode ftp (def. pasv)
-A, --ascii force ASCII mode-transfer
-B, --binary force BINARY mode-transfer
--force-tls force the useage of TLS

Soweit erstmal ein kleiner Überblick zum Programm wget. Ein paar kleine Eigenheiten sollte man bei wput dann allerdings doch beachten:

  1. Für jede Datei die hochgeladen wird, öffnet und schließt wput eine URL-Verbindung. Das bedeutet im Klartext, dass wput etwas langsamer als ein normaler FTP werden kann.
  2. Gibt man zum hochkopieren einen absoluten Pfad an, wie zum Beispiel „/home/ich/, so versucht wput, den führenden Slash mit dem gesamten Pfad ebenfalls auf dem FTP-Server zu erzeugen. Dies führt zu Fehlern, die wput aber sogut wie immer ignoriert.

Die Frage ist, warum ist das so?
Nunja, vom Prinzip her wird nämlich immer eine Datei generiert in die wput schreibt. In diesem Fall muss ein Unterverzeichnis mit den darin liegenden Dateien also erst erzeugt werden. Aufschluß über diese Funktionsweise gibt auch die Dokumentation, die das URL-Konzept erklärt. Umgehen kann man das Problem mit dem Parameter „–basename“, welcher den Pfad wegschneidet.

Die Dokumentation gibt es hier: http://wput.sourceforge.net/wput.1.html
Wer analog dazu Verzeichnisse herunterladen möchte, der sollte sich mit dem Prorgamm „wget“ beschäftigen: http://de.wikipedia.org/wiki/Wget

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *