3 Stimmen

C# Verzeichnis auf einen anderen Server kopieren

Nach zahlreichen gescheiterten Versuchen, mit robocopy Dateien auf einen anderen Server als SQL-Job zu spiegeln (nicht fragen).

Der Job müsste alle 15 Minuten laufen und als SQL-Job ausgeführt werden, um alle Transaktionsprotokolle und Sicherungsdateien zu kopieren, damit bei einem Fehlschlag des Jobs eine Meldung in SQL erfolgt, die dann von MOM überprüft wird. Der Job kann nicht einfach jedes Mal das gesamte Verzeichnis kopieren, da es etwa 50 GB groß ist, sondern müsste nur das Verzeichnis spiegeln, d.h. die Dateien loswerden, die nicht im Quellverzeichnis vorhanden sind, und die neuen Dateien kopieren, die vorhanden sind.

Es wurde vorgeschlagen, dass c# ist der beste Weg (und seine eine gute Lernkurve für mich). Aber meine c#-Kenntnisse sind sehr minimal.

Leider habe ich vergessen zu erwähnen, dass wir uns in einem eingeschränkten Netzwerk befinden und Robocopy die einzige Möglichkeit war, um Anwendungen zu kopieren. FTP ist auch verboten.

Hilfe

Merci

2voto

npinti Punkte 51030

Wenn ich Sie richtig verstehe, müssen Sie ein Verzeichnis auf einen anderen Server kopieren, aber da das Verzeichnis 50 GB groß ist, müssen Sie nur bestimmte Dateien verschieben.

Wenn das der Fall ist, empfehle ich Ihnen, einen Blick auf die FileSystemWatcher . Es "hört" im Grunde auf alle Änderungen, die an Dateien in einem bestimmten Verzeichnis vorgenommen werden, und Sie können diese Aktionen verwenden, um zu erfahren, welche Aktion an welcher Datei durchgeführt wurde (erstellt, bearbeitet, gelöscht).

1voto

Wouter Janssens Punkte 1585

Sie können selbst ein Programm schreiben oder ein Tool von Microsoft installieren TyncToy Mit diesem Tool können Sie Ordnerpaare erstellen, die synchronisiert werden müssen. Beim ersten Mal können Sie die Ordnerpaare über die GUI einrichten, danach können Sie das Tool über die Kommandozeile aufrufen

1voto

Rup Punkte 32603

Als Nicht-C#-Option - ich bin nicht sicher, warum das helfen würde - gibt es auch rsync . Ich habe es nicht unter Windows verwendet, aber ich habe es unter Linux für diese Art von Aufgaben eingesetzt. Es kann als Daemon/Client laufen, um die Arbeit zwischen den Rechnern aufzuteilen. Allerdings scheint es unter Windows nur über cygwin verfügbar zu sein, nicht über die nativen APIs.

0voto

Nathan Taylor Punkte 24098

Es klingt so, als ob FTP für die Übertragung der Dateien eine gute Option wäre.

Hier finden Sie eine Anleitung zum Hochladen einer Datei mit FtpWebRequest unter Verwendung von C#: http://www.vcskicks.com/csharp_ftp_upload.php

0voto

andy Punkte 533

Leider habe ich vergessen zu erwähnen, dass wir uns in einem eingeschränkten Netzwerk befinden und Robocopy die einzige Möglichkeit war, Anwendungen zu kopieren. FTP ist auch verboten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X