FTP-Skripterstellung mit DriveHQ CommandFTP

FTP/SFTP-Skripterstellung mit DriveHQ CommandFTP


1. Einführung
2. DriveHQ CommandFTP Syntax und Parameter
3. Erstellen von FTP-Skriptdateien
3.1 Beispiel einer FTP-Skriptdatei
3.2 FTP-Skriptdatei mit Parametern
4. Automatisieren Sie die Dateiübertragung mit der Windows-Aufgabenplanung
5. Automatische Ordnersynchronisierung mit DriveHQ CommandFTP
6. FTP-Befehlsreferenzen
6.1 Standard-FTP-Befehle
6.2 DriveHQ Erweiterte FTP-Befehle

1. Einführung

DriveHQ CommandFTP ist ein leistungsstarker Kommandozeilen-FTP- und SFTP-Client, der den Windows-FTP-Client ersetzen soll. Er unterstützt FTP-Skripte und ist mit allen gängigen FTP/SFTP-Servern kompatibel.

FTP/SFTP ist äußerst beliebt für die Übertragung großer Dateien und Ordner über das Internet. Kommandozeilen-FTP-Clients werden häufig für die automatisierte Dateiübertragung mithilfe von FTP-Skripten eingesetzt. Viele verwenden den in Windows integrierten Kommandozeilen-FTP-Client. Dieser weist jedoch einige gravierende Nachteile auf:

  • 1. Es unterstützt nur den aktiven FTP-Modus, der häufig von Routern, Firewalls oder Sicherheitssoftware blockiert wird.
  • 2. Es unterstützt nur unverschlüsseltes FTP ohne Datenverschlüsselung.
  • 3. Automatisches Fortsetzen/Wiederholen wird nicht unterstützt.

DriveHQ CommandFTP wurde als Ersatz für den standardmäßigen Windows-FTP-Client entwickelt. Es bietet folgende Vorteile:

  • 1. Es unterstützt sowohl den aktiven als auch den passiven FTP-Modus.
  • 2. Es unterstützt FTP über SSL (FTPS & FTPES) und SFTP.
  • 3. Es unterstützt automatisches Fortsetzen/Wiederholen.
  • 4. Es unterstützt Datenkomprimierung und -verschlüsselung.
  • 5. Es unterstützt das Herunterladen/Hochladen von Ordnern.
  • 6. Es unterstützt das Spiegeln/Synchronisieren von Ordnern.
  • 7. Es unterstützt die Ereignisprotokollierung für Prüf- und Fehlerbehebungszwecke.
  • 8. Es kann nach einem Vorgang E-Mail-Berichte versenden.
  • 9. Es unterstützt leistungsfähigere FTP-Skripte.

In vielen Fällen kann DriveHQ CommandFTP den Windows-FTP-Client direkt ersetzen. Syntax und Befehlszeilenparameter sind ähnlich. DriveHQ CommandFTP bietet jedoch deutlich mehr Funktionen. Komplexe Dateiübertragungen lassen sich mit nur einem Befehl durchführen. Dank der SFTP-Unterstützung können Sie ein FTP-Skript erstellen und es anschließend auf einem SFTP-Server ausführen.

2. DriveHQ CommandFTP Syntax und Parameter

Syntax


cmdftp FTP_SERVER [-u:USERNAME] [-p:PASSWORD] [-i] [-A] [-k:"PRIVATE_KEY_FILE"] [-s:"FTP_SCRIPT_FILE"] [-d:"LOG_FILE"] [-m:"SOURCE_FTP_SERVER", "DESTINATION_FTP_SERVER"] [CMDOPTIONS]
cmdftp [-s:"FTP_SCRIPT_FILE"] [-d:"logfile"]

Parameter

Parameter Beschreibung
FTP_SERVER Der Name oder die IP-Adresse des FTP/SFTP-Servers, z. B. ftp.drivehq.com, ftp://ftp.drivehq.com oder ftps://ftp.drivehq.com. Diese Angabe ist erforderlich, es sei denn, die Parameter enthalten die Option -s:FTP_SCRIPT_FILE
-u:USERNAME Gibt den Benutzernamen des FTP/SFTP-Kontos an.
-p:PASSWORD Gibt das FTP/SFTP-Kontopasswort an.
-k:"PRIVATE_KEY_FILE" Optional. Gibt den Pfad zur SFTP-Privatschlüsseldatei an.
-s:"FTP_SCRIPT_FILE" Optional. Gibt den Pfad zur FTP-Skriptdatei an. Wenn dieser Parameter angegeben wird, werden alle anderen Parameter außer der Option „-d:LOG_FILE“ ignoriert.

Befehlsoptionen

/xo[:time] Alte Dateien ausschließen
/xn[:time] Neuere Dateien ausschließen
/xf:filenames Auszuschließende Dateien, Dateien werden durch Komma getrennt
/xd:foldernames Ordner ausschließen; Ordner werden durch Kommas getrennt

Protokollierungsoptionen

-d:"LogFileName" Gibt den Pfad zur Protokolldatei an. Wird "-d" ohne Angabe eines Protokolldateinamens verwendet, wird das Protokoll im Konsolenfenster angezeigt.

3. Erstellen von FTP-Skriptdateien

FTP-Skripte sind bei IT-Administratoren und Systemintegratoren sehr beliebt. Sie werden häufig für die automatisierte Datensicherung und Dateiübertragung eingesetzt. Mit FTP-Skripten lässt sich eine Textdatei erstellen, die eine Liste von FTP-Befehlen und deren Eingaben enthält. Diese Befehle können dann nacheinander in einem einzigen Durchlauf ausgeführt werden. Da eine Skriptdatei viele FTP-Befehle enthalten kann, lassen sich damit auch sehr komplexe Dateiübertragungsaufgaben bewältigen.

Die FTP-Skripterstellung mit dem standardmäßigen Windows-FTP-Client ist stark eingeschränkt: Er unterstützt lediglich das unsichere, einfache FTP und das Active-Model-FTP, das häufig von Routern und Firewalls blockiert wird. DriveHQ CommandFTP bietet die meisten Funktionen des Windows-FTP-Clients und darüber hinaus viele weitere, die im Windows-FTP-Client nicht verfügbar sind. DriveHQ CommandFTP ist mit allen gängigen FTP-Servern kompatibel.

Um eine FTP-Skriptdatei zu erstellen, können Sie die FTP-Befehle zunächst im interaktiven Modus ausführen. Öffnen Sie ein Befehlsfenster und geben Sie die folgenden Befehle ein, wie im Screenshot unten gezeigt:

Diese Befehle umfassen üblicherweise: Verbindung zu einem FTP-Server herstellen, sich am Server anmelden, Dateien/Ordner in einem Verzeichnis auflisten, aktuelles Verzeichnis wechseln, Dateien hoch-/herunterladen/löschen usw. Wenn Sie FTP nur gelegentlich nutzen, ist diese Methode völlig ausreichend. Müssen Sie jedoch wiederholt Dateien übertragen, sichern oder löschen, beispielsweise im Rahmen einer geplanten Datensicherung oder für den elektronischen Datenaustausch (EDI) mit einem anderen Unternehmen, können Sie problemlos ein wiederverwendbares Skript erstellen. In Verbindung mit der vom Betriebssystem unterstützten Aufgabenplanung lässt sich dieser Geschäftsprozess automatisieren.

Beispiel einer FTP-Skriptdatei
Eine FTP-Skriptdatei verwendet dieselben Befehle und Eingaben wie eine interaktive FTP-Sitzung. Erstellen Sie dazu einfach eine Textdatei in einem Texteditor (z. B. Notepad) und geben Sie die Befehle und Eingaben wie im interaktiven Modus ein. DriveHQs CommandFTP hat eine sehr ähnliche Benutzeroberfläche wie der Windows-FTP-Client. Die folgenden Befehle können sowohl im Windows-FTP-Client als auch im CommandFTP-Client von DriveHQ ausgeführt werden. Um CommandFTP zu verwenden, geben Sie bitte „cmdftp“ anstelle von „ftp“ ein.:

C:\>ftp
ftp> open ftp.drivehq.com
Connected to ftp.drivehq.com.
220 Welcome to the most popular FTP hosting service! Save on hardware, software,
 hosting and admin. Share files/folders with read-write permission. Visit http:/
/www.drivehq.com/ftp/;
User (ftp.drivehq.com:(none)): dhqdemo
331 User name ok, need password.
Password: xxxxxxxxx
230 User dhqdemo logged on.
ftp> cd test
250 CWD command successful. "/test" is current directory.
ftp> delete orders.xml.bak
550 File not found.
ftp> rename orders.xml orders.xml.bak
350 File exists, ready for destination name.
250 File "/test/orders.xml" renamed successfully.
ftp> put c:\test\orders.xml
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete
ftp: 41 bytes sent in 0.06Seconds 0.65Kbytes/sec.
ftp> quit
221 Bye

C:\>


Wie Sie sehen können, werden diese Befehle:
- Melden Sie sich bei einem FTP-Server an: ftp.drivehq.com;
- Geben Sie Benutzernamen und Passwort ein;
- Wechseln Sie in das lokale Verzeichnis "c:\test";
- Wechseln Sie in das FTP-Verzeichnis "/test";
- Löschen Sie die Datei „Orders.xml.bak“ (falls vorhanden) auf dem FTP-Server;
- Benennen Sie die Datei „Orders.xml“ (falls vorhanden) auf dem FTP-Server in „Orders.xml.bak“ um;
- Laden Sie die lokale Datei „Orders.xml“ auf den FTP-Server hoch;
- Beenden

Sie können die Skripte in einem Befehlsfenster ausführen, um den Code zu debuggen, bevor Sie ihn in einer Skriptdatei speichern. Der Inhalt des Skripts sieht wie folgt aus:

open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit

Das obige FTP-Skript kann täglich ausgeführt werden, um neue Bestellinformationen automatisch an den FTP-Server zu übertragen. Es lädt die aktuelle Datei „Orders.xml“ auf den FTP-Server hoch; zuvor wird die vorherige Datei umbenannt (gesichert).
Um das FTP-Skript auszuführen, führen Sie einfach den FTP-Befehl mit der Option -s aus. Mit einem Windows-FTP-Client können Sie Folgendes verwenden:
	ftp -s:ftpscript.txt 

Mit dem DriveHQ CommandFTP-Client können Sie Folgendes verwenden
	cmdftp -s:ftpscript.txt 
    

FTP-Skripte mit Parametern
Das obige FTP-Skript ist statisch. Es kann zwar wiederholt ausgeführt werden, ist aber nicht sehr flexibel. Wenn Sie beispielsweise Daten für mehrere Clients übertragen müssen, möchten Sie wahrscheinlich unterschiedliche Ordner verwenden. Um dasselbe FTP-Skript wiederverwenden zu können, muss es zusätzliche Parameter unterstützen. Dafür gibt es zwei Lösungen:
(1) Verwenden Sie eine Batch-Skriptdatei, um die FTP-Skriptdatei dynamisch zu erstellen. Windows-Batch-Skripte können Befehlszeilenparameter verarbeiten. Wenn Sie einen Windows-FTP-Client verwenden, ist dies die einzige Lösung.
(2) DriveHQ CommandFTP unterstützt zusätzliche Parameter.
Bei der ersten Methode müssen Sie eine Batchdatei erstellen, z. B. test.bat. Speichern Sie die Datei im Ordner C:\test. Sie können die Batchdatei ausführen, indem Sie Folgendes eingeben:

	c:\test\test.bat PARAM1 PARAM2 ...

Die test.bat-Datei wird wie folgt aussehen:

@echo off
echo open ftp.drivehq.com> ftpscript.txt
echo USERNAME>> ftpscript.txt
echo PASSWORD>> ftpscript.txt
echo cd %1>>  ftpscript.txt
echo delete %2.bak>>  ftpscript.txt
echo rename %2 %2.bak>> ftpscript.txt
echo put c:\%1\%2>> ftpscript.txt
echo quit>> ftpscript.txt


Auf diese Weise können Sie die Argumente der Batch-Datei an die FTP-Skriptdatei übergeben. Dasselbe Batch-Skript kann beispielsweise für verschiedene Unternehmen wiederverwendet werden.:
    c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
    c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
Mit DriveHQ CommandFTP können Sie ein FTP-Skript mit zusätzlichen Argumenten ausführen. Dadurch entfällt die Notwendigkeit, eine Batch-Skriptdatei zu erstellen. Sie können das FTP-Skript einfach mit dem folgenden Befehl ausführen:
    
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
    
Die FTP-Skriptdatei muss wie folgt geringfügig angepasst werden:

# %1 is like "test", %2 is like "orders.xml"
# This file is saved as c:\temp\ftpscript2.txt
# to run it, use:
# cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml

open ftp.drivehq.com
USERNAME
PASSWORD
cd /%1
delete /%1/%2.bak
rename /%1/%2 /%1/%2.bak
put c:\%1\%2
quit

In der obigen Skriptdatei wird der Ordnername durch %1 und der Dateiname durch %2 ersetzt. Um das FTP-Skript auszuführen, müssen Sie diese Parameter als Befehlszeilenargumente angeben.
    
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
    
Wenn DriveHQ CommandFTP die Skriptdatei ausführt, werden %1 durch "test" und %2 durch "orders.xml" ersetzt.

4. Automatisieren Sie die Dateiübertragung mit der Windows-Aufgabenplanung

Ob Sie eine Batchdatei verwenden oder DriveHQ CommandFTP direkt nutzen – Sie können die Dateiübertragung in der Windows-Aufgabenplanung planen. Die Aufgabe lässt sich täglich, wöchentlich oder monatlich ausführen. In den erweiterten Einstellungen können Sie sogar festlegen, dass die Aufgabe alle paar Stunden oder Minuten ausgeführt wird. Sie können auch die Startzeit der Aufgabe bestimmen. Um die Aufgabenplanung zu starten, geben Sie „Aufgabenplanung“ in das Suchfeld ein (siehe Screenshot unten):

Launch Windows Task Scheduler

Klicken Sie auf „Aufgabenplanung“, dadurch wird die Windows-Aufgabenplanung gestartet.

Click create basic task in Windows Task Scheduler

Um eine Aufgabe zu erstellen, klicken Sie auf „Einfache Aufgabe erstellen“.

Create basic scheduled task

Geben Sie den Aufgabennamen und die Beschreibung ein und klicken Sie dann auf Weiter.

Select task trigger / schedule

Wählen Sie Ihren Aufgabenplan. Sie können täglich, wöchentlich oder monatlich wählen. Wenn Sie die Aufgabe stündlich ausführen möchten, können Sie dies später in den erweiterten Einstellungen festlegen. Klicken Sie auf „Weiter“, um die Aktion festzulegen.

Scheduled Task - Action - select a program

Wählen Sie auf der Aktionsseite „Programm starten“ und klicken Sie dann auf Weiter.

Scheduled Task - Action - Select DriveHQ CommandFTP

Navigieren Sie zu DriveHQ CommandFTP (cmdftp.exe) und wählen Sie das Programm aus. Fügen Sie die Befehlszeilenparameter im Textfeld „Argumente hinzufügen“ ein. Die Angabe „Starten in“ ist optional. Sie können denselben Ordner wie die EXE-Datei auswählen. Klicken Sie auf „Weiter“, um die Erstellung des Vorgangs abzuschließen.

Um auf die erweiterten Einstellungen zuzugreifen, klicken Sie auf „Aufgabenplanungsbibliothek“. Dort sehen Sie eine Liste der geplanten Aufgaben. Doppelklicken Sie auf die Aufgabe „Bestellungen hochladen“, um die Aufgabeneinstellungen zu bearbeiten.

Scheduled Task - Advanced Settings - Edit Task Properties

Standardmäßig wird die Aufgabe nur ausgeführt, wenn der Benutzer angemeldet ist. Sie können diese Einstellung hier ändern, sodass die Aufgabe auch dann ausgeführt wird, wenn der Benutzer nicht angemeldet ist.

5. Automatische Ordnersynchronisierung mit DriveHQ CommandFTP

DriveHQ CommandFTP unterstützt die Ordnerspiegelung. Das Synchronisieren eines lokalen Ordners mit einem FTP-Ordner ist denkbar einfach. Verwenden Sie einfach den folgenden Befehl:

	cmdftp FTP_SERVER -u:Benutzername -p:Passwort -m:"LOKALER_ORDNER|FTP_ORDNER"

Mithilfe der Windows-Aufgabenplanung können Sie diesen Befehl ausführen, um die beiden Ordner regelmäßig zu synchronisieren.

6. FTP-Befehlsreferenzen

Nachdem Sie sich bei einem FTP-Server angemeldet haben, können Sie FTP-Befehle an den FTP-Server senden. Der Windows-FTP-Client unterstützt die folgenden Befehle. Bitte beachten Sie, dass diese Befehle nicht mit FTP-Befehle, die im FTP-Protokoll definiert sind identisch sind. Jeder FTP-Protokollbefehl behandelt üblicherweise nur ein einfaches Problem. Ein FTP-Befehl in einem Windows-FTP-Client kann jedoch mehrere FTP-Protokollbefehle verwenden.

DriveHQ CommandFTP ähnelt dem Windows-FTP-Client. Es unterstützt ähnliche Befehle und Syntax. Zusätzlich bietet es einige DriveHQ-spezifische, erweiterte FTP-Befehle, z. B. zum Kopieren, Verschieben, Hochladen, Herunterladen oder Löschen von Ordnern.

6.1 Windows FTP-Client-Befehle

Der Windows-FTP-Client (ftp.exe) unterstützt die folgenden FTP-Befehle:
FTP-Befehle Beschreibung
! Dieser Befehl schaltet zwischen dem lokalen Betriebssystem und dem FTP-Server um. Wenn Sie sich bei einem FTP-Server anmelden, wird standardmäßig der FTP-Server verwendet. Wenn Sie einen Befehl lokal ausführen möchten, können Sie in der Regel Folgendes verwenden !CMD_NAME, e.g. !dir, !mkdir, usw.
? Zeigt die Hilfeinformationen an.
append An eine Datei anhängen.
ascii ASCII-Übertragungsmodus einstellen.
bell Aktivieren Sie die Option „Piepton bei abgeschlossenem Befehl“.
binary Binärübertragungsmodus einstellen.
bye FTP-Sitzung trennen und beenden.
cd Wechseln Sie das Verzeichnis.
close Beenden Sie die FTP-Sitzung.
delete Löscht eine Datei.
debug Debugging-Modus ein- oder ausschalten.
dir Listet Dateien und Unterordner in einem Verzeichnis auf.
disconnect FTP-Sitzung trennen.
get Datei vom Remote-FTP-Server abrufen.
glob Globbing aktivieren oder deaktivieren. Wenn es deaktiviert ist, werden Platzhalterzeichen in Dateinamen (im setzen Und erhalten Befehle werden wörtlich genommen.
hash Die Ausgabe von "#" für jeden übertragenen Puffer umschalten.
help Hilfeinformationen anzeigen; üblicherweise mit help BEFEHLSNAME.
lcd Zeigt das aktuelle lokale Arbeitsverzeichnis an, wenn es allein eingegeben wird; andernfalls wird das lokale Arbeitsverzeichnis geändert.
literal Sende einen beliebigen Befehl an den verbundenen FTP-Server mit einer erwarteten einzeiligen Antwort.
ls Dateien im FTP-Ordner auflisten.
mdelete Mehrere Dateien auf dem FTP-Server löschen.
mdir Listet Dateien/Unterordner mehrerer FTP-Verzeichnisse auf.
mget Laden Sie mehrere Dateien vom FTP-Server in Ihren lokalen Arbeitsordner herunter.
mkdir Erstelle ein neues Verzeichnis.
mls Inhalte mehrerer FTP-Verzeichnisse auflisten.
mput Laden Sie mehrere lokale Dateien auf den FTP-Server hoch.
open Stelle eine Verbindung zu einem FTP-Server her.
prompt Aktiviert oder deaktiviert die interaktive Eingabeaufforderung bei mehreren Befehlen.
put Laden Sie eine Datei auf den FTP-Server hoch.
pwd Drucken Sie das Arbeitsverzeichnis auf dem FTP-Server.
quit Verbindung zum FTP-Server trennen und beenden.
quote Dasselbe wie der wörtliche Befehl (Beliebigen FTP-Befehl senden).
recv Eine Datei vom FTP-Server herunterladen / empfangen.
remotehelp Hilfe vom Remote-Server anfordern.
rename Eine Datei auf dem FTP-Server umbenennen.
rmdir Ein Verzeichnis auf dem FTP-Server entfernen.
send Senden Sie eine Datei.
status Zeigt den Status der aktuellen Optionen an.
trace Paketverfolgung umschalten.
Type Dateiübertragungstyp festlegen.
user Senden Sie die Informationen zum neuen Benutzer (Benutzername).
verbose Ausführliche Ausgabe ein- oder ausschalten.

6.2 DriveHQ Erweiterte FTP-Befehle

DriveHQ CommandFTP unterstützt einige weitere, erweiterte FTP-Befehle:

FTP-Befehle Beschreibung
download Einen Ordner oder eine Datei herunterladen.
Syntax: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
upload Laden Sie einen Ordner oder eine Datei hoch.
Syntax: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
mirror Einen lokalen Ordner und einen FTP-Ordner spiegeln.
Syntax: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
deleteoldfiles Im angegebenen Ordner werden Dateien gelöscht, die älter als x Tage sind.
Syntax: deleteoldfiles [FTP-PATH] /xo:[time]