Wie man ein automatisches Tool zum Herunter- und Hochladen von Dateien mit dem Befehl WinSCP erstellt.


Datum der Veröffentlichung:9. Dezember 2020.



INFOMARTION > Wie man ein automatisches Tool zum Herunter- und Hochladen von Dateien mit dem Befehl WinSCP erstellt.

Überblick.

Erstellen Sie ein Tool zum automatischen Herunter- und Hochladen von Dateien mit dem Befehl WinSCP. Führen Sie die von WinSCP bereitgestellten Befehle über die Eingabeaufforderung aus. Es überrascht nicht, dass WinSCP Befehle bereitstellt. Normalerweise verwenden Sie "WinSCP.exe", aber auch "WinSCP.com" ist verfügbar. Sie werden den Ordner "C:\Programme (x86)\WinSCP" fast nie im Verknüpfungsziel sehen, da Sie ihn normalerweise grundsätzlich über die Verknüpfung öffnen, aber wenn Sie sich das Verknüpfungsziel ansehen, sollte "WinSCP.com" auch dort gespeichert sein. An dieser Stelle wird das Werkzeug erstellt.

Inhaltsübersicht

  1. Was ist der Befehl WinSCP?
  2. Automatisches Download-Tool
  3. Werkzeug zum automatischen Hochladen
  4. Andere Befehle, die häufig verwendet werden können
  5. Zusammenfassung

1. Was ist der Befehl WinSCP?

Der WinSCP-Befehl ist ein Befehl, mit dem Sie die WinSCP-Vorgänge ausführen können, die Sie normalerweise in der grafischen Benutzeroberfläche durchführen. Dieser Vorgang, den Sie normalerweise am Bildschirm durchführen würden, wird durch einen Befehl ausgeführt.

1-1. Was Sie tun können.

Sie können Dateien herunterladen und hochladen, Ordner erstellen, Shell-Befehle aufrufen und vieles mehr.

Zu den Befehlen, die häufig verwendet werden, gehören.

open・・・Wird für die Verbindung verwendet.

get・・・Wird zum Herunterladen von Dateien verwendet.

put・・・Wird zum Hochladen von Dateien verwendet.

exit・・・Wird zum Schneiden verwendet.

1-2. Was Sie nicht tun können.

Grundlegende Dateidownloads und -uploads sind möglich, aber nach der Benutzung des Systems scheint es schwierig zu sein, die Details zu kontrollieren.

Zum Beispiel schien es schwierig zu sein, "das Aktualisierungsdatum einer Datei zu prüfen und eine Datei mit einem bestimmten Aktualisierungsdatum zu holen".

Wenn Sie komplexe Bedingungen an die zu bearbeitende Datei knüpfen wollen, können Sie die Shell mit dem Befehl 'call' aufrufen, was mit Windows-Befehlen, Linux-Befehlen usw. erreicht werden kann.

2. Automatisches Download-Tool

Wir würden gerne ein Tool erstellen, das die Protokolle auf dem Linux-Server automatisch herunterlädt.

2-1. Herstellung von

Erstellen Sie ein Werkzeug mit den folgenden Bedingungen.

・Windows 10 als Ausführungsumgebung.

・Der zu erwerbende Server ist ein Linux-Server.

・IP-Adresse 192.168.50.10.

Erstellen Sie zunächst eine Bat-Datei als Ausgangspunkt für die Aktivierung.

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

Bis auf die letzte Zeile ist der Rest des Prozesses ein Windows-Befehl. Inhalt.

@setlocal enabledelayedexpansion

Einstellungen für verzögerte Umgebungsvariablen. Kurz gesagt, verhindert diese Beschreibung, dass einer Variablen ein Wert zugewiesen wird, der möglicherweise nicht reflektiert wird.

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

Der Vorgang, bei dem yyyymmddhmmss aus der aktuellen Zeit ermittelt und schließlich in die Variable FOLDER eingetragen wird.

@mkdir %FOLDER%

Erstellen Sie einen Ordner 'yyyymmddhmmss' direkt unter dem Ordner, in dem der Stapel ausgeführt wurde.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (WinSCP-Befehl). Bei der Ausführung werden die in "ftp.txt" aufgelisteten Befehle in demselben Ordner ausgeführt, in dem die Batch-Datei gespeichert ist. Übergeben Sie den soeben erstellten Ordnerpfad als Argument.

Damit ist die Erstellung der Anruferdatei abgeschlossen. Der WinSCP-Befehl wird dann in "ftp.txt" beschrieben.

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Inhalt.

option batch on

Bei Prozessen, die eine Abfrage erfordern, geht das System automatisch davon aus, dass "Nein" ausgewählt wurde, und führt den Prozess automatisch aus. Wenn Sie diese Option wählen, werden alle doppelten Dateinamen automatisch überschrieben. (Sie können einen Ordner "yyyymmddhmmss" erstellen und die Dateien dort ablegen, damit es keine doppelten Dateinamen gibt.)

option transfer binary

Die Einstellung ist so, dass die Daten im Binärmodus übertragen werden.

open test:testpassword@192.168.50.10

Benutzername:Kennwort@IP-Adresse'. Verbinden Sie sich mit der IP-Adresse "192.168.50.10".

get /var/log/httpd/access_log %1%\

Speichern Sie "/var/log/httpd/access_log" in dem Ordner "yyyymmddhhmmss".('%1%' ist das in file_get.bat übergebene Argument)

Es können auch reguläre Ausdrücke verwendet werden. Wenn Sie also "/var/log/httpd/*" schreiben, kann das gesamte Protokoll abgerufen werden.

close
exit

Es handelt sich um einen Abkopplungsprozess.

Damit ist die Erstellung des Tools abgeschlossen.

2-2. Umsetzungsvorbereitung

Vor der Vollstreckung wird ein vorläufiger Fingerabdruck genommen.

Wenn der Server noch nie über WinSCP verbunden wurde, werden Sie gefragt, ob die Verbindung sicher ist. Wenn Sie auf "Ja" drücken, wird dies im Windows-Registrierungsbereich vermerkt. Dadurch wird sichergestellt, dass das System nicht ein zweites Mal überprüft wird. Wenn Sie das Tool ausführen, müssen Sie dies im Voraus tun und Informationen über den Server im Registrierungsbereich speichern, um sicherzustellen, dass die Verbindung sicher ist; führen Sie daher die folgenden Befehle in der Eingabeaufforderung aus.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Sie werden um eine Antwort gebeten, geben Sie "y" ein.
close
exit
exit

test:testpassword@192.168.50.10" sollte durch "Benutzername:Passwort@IP-Adresse" ersetzt werden.

Damit sind die Vorbereitungen abgeschlossen.

2-3. Umsetzung

Schließlich ist es an der Zeit, sie umzusetzen. Doppelklicken Sie auf 'file_get.bat'.

Erfolgreich, wenn der Ordner "yyyymmddhhmmss" erstellt wurde und die Protokolle in diesem Ordner gespeichert sind.

3. Werkzeug zum automatischen Hochladen

Der nächste Schritt besteht darin, ein Tool zu entwickeln, mit dem Dateien auf einem Linux-Server abgelegt werden können. Der grundlegende Aufbau ist derselbe wie beim Download-Tool.

3-1. Herstellung von

Erstellen Sie ein Werkzeug mit den folgenden Bedingungen.

・Windows 10 als Ausführungsumgebung.

・Der Zielserver ist Linux.

・IP-Adresse 192.168.50.10.

Erstellen Sie zunächst eine Bat-Datei als Ausgangspunkt für die Aktivierung.

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

Da es im automatischen Download-Tool erklärt wurde, entfällt eine kleine Erklärung, aber das Verfahren besteht darin, die Dateien im Ordner "put_files" in demselben Ordner zu speichern, in dem die Batch-Datei in "/tmp/" ausgeführt wird. Der eigentliche Speichervorgang ist in "put_ftp.txt" beschrieben.

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

Der Befehl "put %1%\ %2%" lädt Dateien entsprechend der als Argumente übergebenen "Quelldatei" und des "Zielordners" hoch, wobei eine kleine Erklärung weggelassen wird, da dies auch beim automatischen Download-Tool erklärt wird.

3-2. Umsetzungsvorbereitung

Wie bei dem automatischen Download-Tool werden die Fingerabdrücke vor der Ausführung überprüft.(Nicht erforderlich, wenn das automatische Download-Tool einmal ausgeführt wurde.)

Führen Sie den folgenden Befehl an der Eingabeaufforderung aus.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Sie werden um eine Antwort gebeten, geben Sie "y" ein.
close
exit
exit

test:testpassword@192.168.50.10" sollte durch "Benutzername:Passwort@IP-Adresse" ersetzt werden.

Damit sind die Vorbereitungen abgeschlossen.

3-3. Umsetzung

Schließlich ist es an der Zeit, sie umzusetzen. Doppelklicken Sie auf 'file_put.bat'.

Erfolgreich, wenn die in 'put_files' gespeicherten Dateien in den Ordner '/tmp/' übertragen werden.

4. Andere Befehle, die häufig verwendet werden können

Wir haben die Grundlagen des Herunterladens und Hochladens vorgestellt, möchten aber auch andere Befehle beschreiben, die häufig verwendet werden können.

4-1. Schlüssel-Authentifizierung

Zuvor haben Sie sich mit der Passwortauthentifizierung gemäß der folgenden Beschreibung angemeldet.

open test:testpassword@192.168.50.10

open benutzername:passwort@IP-Adresse'. Für die Schlüsselauthentifizierung gilt das Folgende.

open test@192.168.50.10 -privatekey=id_rsa.ppk

Die Angabe "-privatekey=id_rsa.ppk" ist der Pfad zum Schlüssel. Da es sich um einen relativen Pfad handelt, wird davon ausgegangen, dass sich der Schlüssel (id_rsa.ppk) auch in dem Ordner befindet, in dem die ausführbare Datei (bat-Datei) gespeichert ist. Wenn sich der Schlüssel beispielsweise direkt unter dem Laufwerk C befindet, schreiben Sie "-privatekey=C:\id_rsa.ppk".

4-2. Aufrufen der Shell

Um die Shell über den WinSCP-Befehl aufzurufen, schreiben Sie wie folgt.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

test.sh" wird von "call sh /tmp/test.sh" ausgeführt. Es ist auch möglich, Argumente zu übergeben. Wenn Sie Argumente übergeben, schreiben Sie sie als "call sh /tmp/test.sh param1".

5. Zusammenfassung

Der Befehl WinSCP wurde bereits beschrieben.

Wenn Sie normalerweise die WinSCP-GUI verwenden, um täglich Dateien zu protokollieren und hochzuladen, können Sie dies mit den in diesem Artikel beschriebenen Tools automatisieren. Es mag eine kleine Aufgabe sein, aber sie kann viel Zeit in Anspruch nehmen, es sei denn, sie wird jeden Tag erledigt. Wir ermutigen Sie, Tools zur Verbesserung der Effizienz zu entwickeln.

Danke, dass Sie bis zum Ende zugesehen haben.