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):
Klicken Sie auf „Aufgabenplanung“, dadurch wird die Windows-Aufgabenplanung gestartet.
Um eine Aufgabe zu erstellen, klicken Sie auf „Einfache Aufgabe erstellen“.
Geben Sie den Aufgabennamen und die Beschreibung ein und klicken Sie dann auf Weiter.
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.
Wählen Sie auf der Aktionsseite „Programm starten“ und klicken Sie dann auf Weiter.
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.
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]
|