RoboCopy mit FtpUse kombinieren

7

Unsere Kunden müssen bestimmte Dateien über FTP von ihrem Netzwerk in unser Netzwerk übertragen. Die Übertragung muss automatisch aufgerufen werden, wenn sich eine der angegebenen Dateien ändert. Für diesen Zweck ist RoboCopy perfekt. RoboCopy unterstützt jedoch keine Übertragung an FTP-Adressen. Daher möchte ich unsere FTP-Site einem Laufwerksbuchstaben auf dem Client-Server zuordnen. Ich fand, dass FtpUse perfekt ist, um einen FTP einem Laufwerksbuchstaben zuzuordnen . Die Zuordnung funktioniert wie erwartet und ich kann den Inhalt der FTP-Site im Windows Explorer sehen. Ich kann auch Daten auf das zugeordnete FTP-Laufwerk schreiben.

Angenommen, ich habe die FTP-Site mit diesem Befehl dem Laufwerk Q auf meinem lokalen Computer zugeordnet:

ftpuse Q: [ftp address] [password] /USER:[username]

Versuchen Sie, RoboCopy mit diesem Befehl einzurichten:

robocopy [source dir] Q:\ *.xls *.xlsx /COPY:DAT /LOG+:"[LogDir]\FtpCopyLog.txt" /V /NP /MON:1 /MOT:1 /R:10 /W:30 

Wenn RoboCopy ausgeführt wird, schlägt dies mit der folgenden Fehlermeldung fehl:

FEHLER 87 (0x00000057) Kopieren der Datei [Quellverzeichnis] ​​\ test2.xlsm Der Parameter ist falsch

Ich habe versucht, das Laufwerk zuzuordnen und den RoboCopy-Befehl unter dem gleichen Benutzerkonto auszuführen, aber es scheint das Problem nicht zu lösen.

Hoffe jemand kann helfen.

Jede Hilfe wäre sehr dankbar.

user1632306
quelle
Nie FtpUse verwendet, aber was ist, wenn Sie einen Linux Samba Staging Server einrichten, auf den beide Server zugegriffen haben? Robocopy zu Samba Share und alles, was der Linux-Server tat, war eine Netzwerkfreigabe bereitzustellen
Brian
Dies ist ein Windows-zu-Windows-Setup, und es scheint eine große Aufgabe zu sein, einen zusätzlichen Server für diese Dateiübertragungsaufgabe einzurichten.
user1632306
Gedanken ... können Sie eine einfache Kopie mit COPY oder XCOPY testen, um zu bestätigen, ob tatsächlich ROBOCOPY fehlerhaft ist oder ein Problem mit dem von FTPUSE.EXE präsentierten Laufwerk vorliegt. Zweitens, und es ist wahrscheinlich nur Ihr Beispiel, wird der Fehler für eine .XLSM-Datei markiert, aber dieser Dateityp ist nicht in Ihrem Befehl enthalten. Ich frage mich nur, ob hier noch etwas los ist ...
Simon Catlin
Vielen Dank für Ihre Eingabe @simonc. Ich habe versucht, COPY und XCOPY zu verwenden, und es wird eine Fehlermeldung angezeigt, ähnlich wie bei der Verwendung von Robocopy: "Fehler beim Erstellen von Dateien - der Parameter ist falsch". Ich habe jedoch erfolgreich Dateien vom FTP-Laufwerk (Q :) auf mein lokales Laufwerk kopiert. Es hat also wahrscheinlich etwas mit Berechtigungen zu tun. Irgendwelche Ideen?
user1632306
1
Sie können über die GUI von / auf das zugeordnete Laufwerk lesen / schreiben, dies jedoch nicht über die Eingabeaufforderung. Welche Befehle verwenden Sie in COPY / XCOPY?
CIA

Antworten:

3

Versuchen Sie, WinSCP im Spiegelmodus zu verwenden. WinSCP kann hier heruntergeladen werden:

http://winscp.net/eng/download.php

Mit WinSCP müssen Sie kein Laufwerk zuordnen, es stellt lediglich eine direkte Verbindung zu FTP her und erledigt die Arbeit für Sie.

Hier ist ein kleines BAT-Skript, das dies ROBOCOPY ähnelt.

WATCH OUT: Ich habe die Option -delete hinzugefügt, mit der entfernte Dateien entfernt werden, die nicht mehr mit dem lokalen Ordner übereinstimmen. Doppelte Anführungszeichen sind erforderlich, da der lokale Pfad Leerzeichen enthält.

set FTPSERVER=v2008  
set FTPUSER=username  
set FTPPASS=password  
set FTPLOCALE=C:\Users\User\Desktop\Local folder  
set FTPREMOTO=/public  
winscp.com /command "open ftp://%FTPUSER%:%FTPPASS%@%FTPSERVER%/" ^
  "synchronize remote -delete ""%FTPLOCALE%"" %FTPREMOTO%"
anuff
quelle
0

Wenn die Kopie ausgeführt wird, haben Sie die Berechtigung, Dateien zu erstellen, diese jedoch nicht zu überschreiben. Wie groß sind die Dateien? Nach dem, was ich bei jeder Bearbeitung einer Datei erfahre, wird die Datei erneut vollständig kopiert und Sie überschreiben die alte Datei mit der neuen Version. Es gibt keine Möglichkeit zu bewerten, was sich in der Datei geändert hat, und nur die neuen Daten anzuhängen. Da Sie nicht versuchen, Daten anzuhängen, und die von Ihnen verwendeten Tools es Ihnen nicht ermöglichen, die Datei zu überschreiben, können Sie theoretisch eine Art Zwischenskript schreiben, das veraltete Dateien löscht, wenn sie unmittelbar vor dem Kopieren der neuen Datei erkannt werden. Das klingt nach einer klobigen Lösung, aber dann klingt das Ganze auch nach einem klobigen Prozess. Persönlich würde ich neu bewerten, was das Ziel hier und so ist, aber ich versuche, mich nur auf die Beantwortung der Frage zu beschränken. Viel Glück!

mpmackenna
quelle
0

Da Sie bereits Windows verwenden, warum nicht Power Shell verwenden, um dies zu tun? Sie können nur neue Dateien angeben und die Aufgabe mit dem Windows Task Scheduler planen, alle mit integrierten Windows-Tools. Keine Notwendigkeit für eingebaute Funktionalität zu bezahlen. Ich gehe davon aus, dass es sich nicht um eine sichere FTP-Verbindung handelt, die Sie verwenden. Durch schnelles Scripting erhalten Sie eine sehr flexible, kostengünstige Lösung. Ich habe mehrere Power Shell-Skripte, die FTP-Dateien basierend auf bestimmten Kriterien ziehen und pushen.

Pehaada
quelle