maxhax
Goto Top

Backup mit WinSCP

Hallo,

ich möchte per WinSCP Daten von einem FTP Server Daten kopieren. Das per Skript und automatisiert.

Das Skript sieht wie folgt aus:

option batch abort
option confirm off
open sftp://User:passwort@Hostname
synchronize local D:\backup /home/autobackup
exit

Was grundsätzlich funktioniert.
Aber ich möchte :passwort nicht verwenden eine Auth per SSH key ist bei beiden Geräten eingerichtet und funktioniert auch.
Aber das Skript verwendet diesen nicht.

Außerdem werden die Daten im FTP Verzeichnis nach dem kopieren nicht gelöscht.

Hat hier jemand damit vielleicht Erfahrung?

Danke im Voraus!

Content-Key: 1130492440

Url: https://administrator.de/contentid/1130492440

Printed on: May 19, 2024 at 14:05 o'clock

Member: hempel
Solution hempel May 07, 2024 updated at 08:14:29 (UTC)
Goto Top
Aber das Skript verwendet diesen nicht.
Du gibst ihn ja auch nicht mit an wieso sollte er das dann von selbst tun 😁?
Du musst schon die richtigen Parameter dem open Befehl mitgeben
https://winscp.net/eng/docs/scriptcommand_open
Als da wären
-privatekey=mykey.ppk
-hostkey="<fingerprint>"
...
open sftp://user@Hostname -privatekey=mykey.ppk -hostkey=acceptnew
...

Außerdem werden die Daten im FTP Verzeichnis nach dem kopieren nicht gelöscht.
Das sagst du deinem Skript ja ebenfalls nicht, wieso sollte er also anschließend löschen wenn du es ihm nicht sagst ...

Statt synchronize ein get -delete verwenden
https://winscp.net/eng/docs/scriptcommand_get

Gruß h.
Member: Kraemer
Kraemer May 07, 2024 at 07:57:31 (UTC)
Goto Top
Moin,

ein kleiner Helferlein: https://winscp.net/eng/docs/ui_generateurl

Gruß
Member: wobit94
wobit94 May 07, 2024 at 08:07:59 (UTC)
Goto Top
Wenn du deine WinSCP-Skripte anpassen möchtest, um SSH-Schlüssel zu nutzen und gleichzeitig die Dateien nach dem Kopieren zu löschen, kannst du folgendes machen:

Stell sicher, dass dein privater Schlüssel auf dem Client-Computer richtig gespeichert ist und von WinSCP gefunden wird. Du kannst im Skript direkt den Pfad zum Schlüssel angeben. Das sieht dann so aus:


open sftp://User@Hostname -privatekey="Pfad/zum/private/key" 

Der Pfad zum Schlüssel muss stimmen, und der Schlüssel sollte im PPK-Format sein. Falls dein Schlüssel das nicht ist, kannst du das WinSCP-Tool "PuTTYgen" nutzen, um ihn zu konvertieren.

Anstatt synchronize zu verwenden, nutze get mit der Option -delete. Das sorgt dafür, dass die Dateien nach dem erfolgreichen Download gelöscht werden. Hier ist das angepasste Skript:

option batch abort
option confirm off
open sftp://User@Hostname -privatekey="Pfad/zum/private/key" 
get -delete /home/autobackup/* D:\backup\
exit

Mit diesem Setup wird dein Skript die SSH-Schlüsselauthentifizierung nutzen und die Dateien im FTP-Verzeichnis löschen, nachdem sie kopiert wurden. Test das erstmal in einer sicheren Umgebung, bevor du es richtig einsetzt. Viel Erfolg dabei!
Member: MaxHax
MaxHax May 07, 2024 at 09:52:19 (UTC)
Goto Top
Zitat von @hempel:

Aber das Skript verwendet diesen nicht.
Du gibst ihn ja auch nicht mit an wieso sollte er das dann von selbst tun 😁?
Du musst schon die richtigen Parameter dem open Befehl mitgeben
https://winscp.net/eng/docs/scriptcommand_open
Als da wären
-privatekey=mykey.ppk
-hostkey="<fingerprint>"
...
open sftp://user@Hostname -privatekey=mykey.ppk -hostkey=acceptnew
...

Außerdem werden die Daten im FTP Verzeichnis nach dem kopieren nicht gelöscht.
Das sagst du deinem Skript ja ebenfalls nicht, wieso sollte er also anschließend löschen wenn du es ihm nicht sagst ...

Statt synchronize ein get -delete verwenden
https://winscp.net/eng/docs/scriptcommand_get

Gruß h.

Dankeschön so funktionierts!