tommhii
Goto Top

Mehre Dateien von unix server zu einen Windows server transferieren

Hallo ich hab eine Frage

ich möchte mittels winscp Script mehrere Dateien von einen Unix server auf einen Windows server holen, mit einer Log Ausgabe.
Die Dateien die geholt wurden sollen anschließend gelöscht werden. Da noch andere Dateien in dem verzeichnis stehen möchte ich nur die löschen die geholt wurden.
Es werden aus zwei verschieden Verzeichnissen Dateien geholt die Anzahl der Dateien ist unterschiedlich.


winscp.com script=c\Prog\downloadscript.txt /log=c:\logf.txt

Script:
open sftp://Meyer:sdf422xx@10.192.xx.xx
option transfer binary
get /Druck/prod/kat* c:\Upload\KATA\kat* >> c:\Log\log.txt
get /Druck/prod/kko* c:\Upload\KOST\kat* >> c:\Log\log.txt
close
exit

Kann mir jemand behilflich sein.

VG
Tommhi

Content-ID: 366967

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

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

colinardo
colinardo 05.03.2018 aktualisiert um 17:32:55 Uhr
Goto Top
Servus @tommhii ,
schau dir einfach mal die Optionen zum get command an .. na was findest du da?!
Genau
Die Option -delete
Switch 	Description
-delete 	Delete source remote file(s) after transfer.
Zum Thema Logging, siehe die Aufruf-Optionen /log und /loglevel
Usage:
WinSCP [/script=file] [/command cmd1...] [/parameter // param1...]
WinSCP [/log=<logfile> [/loglevel=<level>]] [/xmllog=<logfile> [/xmlgroups]]
WinSCP [/ini=<inifile>]
WinSCP [/rawconfig config1=value1 config2=value2 ...]
WinSCP /batchsettings <site_mask> setting1=value1 setting2=value2 ...
WinSCP /keygen keyfile [/output=output] [/changepassphrase] [/comment=comment]
WinSCP /help

 /script=       Executes batch script file. If the script does not end with
                'exit' command, normal interactive mode follows.
 /command       Executes list of script commands.
 /parameter     Passes list of parameters to script.
 /log=          Turns on session logging to file.
 /loglevel=     Logging level (0..2), add * to enable password logging.
 /xmllog=       Turns on XML logging to file.
 /xmlgroups     Group all XML log elements belonging to the same command.
 /ini=          Path to configuration INI-file.
 /rawconfig     Configures any settings using raw format as in an INI file.
 /batchsettings Updates settings of sites matching a mask using a raw format
                as in an INI file.
 /keygen        Converts private key to .ppk format or edits key. Use /output=
                to specify output file. Use /changepassphrase to change or set
                passphrase. Use /comment= to change or set comment.
 /help          Prints this usage.

Und schon fluppt das von selbst face-smile.

Grüße Uwe
tommhii
tommhii 06.03.2018 um 06:54:18 Uhr
Goto Top
Hallo Uwe,

ja das mit dem delete hab ich gesehen, da aber auf den Unix Server ständig neue Daten bereitgestellt werden, möchte ich nur die Dateien löschen die ich auf den windows Server transferiert habe.
Ich habe Angst wenn er die letzte Datei abgeholt hat und in dem moment wo der lösch Befehl ausgeführt wird eine neue Datei auf dem Server gelöscht wird die noch nicht abgeholt wurde.

VG
Tommhi
colinardo
colinardo 06.03.2018 aktualisiert um 07:35:54 Uhr
Goto Top
Zitat von @tommhii:
Ich habe Angst wenn er die letzte Datei abgeholt hat und in dem moment wo der lösch Befehl ausgeführt wird eine neue Datei auf dem Server gelöscht wird die noch nicht abgeholt wurde.
Nein, es werden nur die Dateien auch gelöscht welche auch tatsächlich erfolgreich übertragen wurden. Kannst du ja ganz einfach selbst testen, das beste Mittel gegen "Angst" face-smile.
tommhii
tommhii 06.03.2018 um 07:54:42 Uhr
Goto Top
sollte der Befehl dann so aussehen
get -delete /Druck/prod/kat* c:\Upload\KATA\kat* >> c:\Log\log.txt

ist das korrekt
colinardo
colinardo 06.03.2018 aktualisiert um 08:53:17 Uhr
Goto Top
Zitat von @tommhii:

sollte der Befehl dann so aussehen
get -delete /Druck/prod/kat* c:\Upload\KATA\kat* >> c:\Log\log.txt

ist das korrekt
Nein
get -delete /Druck/prod/kat* c:\Upload\KATA\
Das Logging gehört nicht ins Skript sondern als Parameter (s.o) in die winscp commandline, das ist kein Batchscript face-wink.
tommhii
tommhii 06.03.2018 um 09:03:06 Uhr
Goto Top
okay hab ich geändert
mir ist aufgefallen das bei meinen Test nur der 2. get befehl Daten hol. kann ich in den Script nur ein get befehl angeben?
colinardo
colinardo 06.03.2018 aktualisiert um 09:22:14 Uhr
Goto Top
Zitat von @tommhii:

okay hab ich geändert
mir ist aufgefallen das bei meinen Test nur der 2. get befehl Daten hol. kann ich in den Script nur ein get befehl angeben?
Nein, du kannst ohne probleme mehrere nutzen. Seh dir die Syntax meiner Zeile mal genau an. Es kann aber durchaus auch sein das es keine Dateien mit dem Filter gibt oder Leserechte im Quellverzeichnis fehlen, Tippfehler, und und und...
Kraemer
Kraemer 06.03.2018 um 11:48:11 Uhr
Goto Top
Warum zur Hölle nutzt durch nicht einfach den Script-Generator? Da findest du alle Hinweise, das benötigte Script etc. Musst dann nur noch die get untereinander reihen...
tommhii
tommhii 06.03.2018 um 15:37:53 Uhr
Goto Top
okay uwe klappt jetzt.

@Kraemer Script Generator kannst Du das etwas näher erläutern

VG
Tommhi
colinardo
colinardo 06.03.2018 aktualisiert um 17:29:59 Uhr
Goto Top
Alles klar, war ja zu erwarten face-smile.

Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.