Kopieren Sie kontinuierlich alle Dateiänderungen von einem Ordner in einen anderen bei Änderung (Windows)

Ich arbeite an einer massiven Java-Webanwendung, die unter zentraler Versionskontrolle steht, aber die Quelldateien werden zum Erstellen und Ausführen des eigentlichen Servers verwendet, der dann alle Dateien, an denen ich arbeite, in ein zufälliges temporäres Verzeichnis kopiert es läuft.

Mein Problem ist, dass ich entweder diese riesige Anwendung neu erstellen muss, um Änderungen an meinen Dateien anzuzeigen, oder alle meine Änderungen verfolgen und die Dateien, die ich geändert habe, wieder an ihren Quellspeicherort kopieren muss Begehen Sie zurück zur Quellcodeverwaltung.

Meine Frage ist: Kann ich ein Befehlszeilenskript ausführen, das alle Änderungen im Quellordner überwacht und geänderte Dateien automatisch in den temporären Ordner X kopiert?

Die Idee ist, den menschlichen Fehlerpunkt zu beseitigen, indem das Zwei-Standorte-Problem manuell gemildert werden muss.

Author: Barney, 2013-02-25

4 answers

Ich schlage vor, FreeFileSync, das die Möglichkeit zu haben scheint, ein Skript zu erstellen, das die beiden Ordner alle paar Sekunden automatisch synchronisiert. Ich habe nicht persönlich damit gespielt, aber es sieht vielversprechend aus.

geben Sie hier die Bildbeschreibung eingeben Sie hier die Bildbeschreibung ein

 9
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-02-25 15:24:43

Haben Sie überlegt, RoboCopy zu verwenden? http://ss64.com/nt/robocopy.html

RoboCopy kann so eingestellt werden, dass die Daten nach Ablauf einer festgelegten Zeitspanne und/oder einer Reihe von Änderungen an den Datensätzen kopiert werden.

/MO : n: Quelle überwachen; erneut ausführen, wenn mehr als n Änderungen angezeigt werden.
/ MOT: m: MOnitor quelle; run wieder in m minuten Zeit, wenn geändert.

 2
Author: BobJim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-05-12 13:44:58

Vielleicht möchten Sie auch einen Blick auf die ()) DeltaCopy client und Server. Grundsätzlich ist es eine Linux-ähnliche rsync Implementierung für Windows, skriptfähig (mit dem Windows-Scheduler, falls gewünscht) und sein Hauptvorteil ist, dass nur die geänderten Teile einer geänderten Datei (ja, Datei!) übertragen werden. Dies kann bei großen Projekten viel Verkehr sparen. Ein Nachteil ist natürlich, dass es vorher eine Dateiliste erstellen und übertragen muss.

Auch, es gibt einige (kleine) Vorbehalte:

  • Da es sich um ältere Software handelt, müssen Sie möglicherweise cygwin1 ersetzen.dll - auf Windows-Rechnern. (Wenn Sie Dateien zwischen Linux und Windows synchronisieren, nur. Es verwendet cygwin als zugrunde liegendes Framework, das zu diesem Zeitpunkt die Konvertierung von 16-Bit-Unicode/UTF-8-Dateinamen nicht korrekt verarbeitet hat.)
  • Es ist nicht gerade so benutzerfreundlich, sollten Sie einen Blick auf Linux haben ' rsync Manpage sein volles Potenzial zu nutzen.
  • Unter Windows, es erfordert einen " Client "und einen" Server " - Computer.
  • Wenn der Server ein Linux-Computer ist, müssen Sie rsyncd korrekt einrichten.
  • Keine Unterstützung für Windows' Volume Shadow Copy (wird jedoch möglicherweise nicht benötigt).

Nun, es hat auch Vorteile (deshalb benutze ich es immer noch täglich):

  • , Voll kompatibel mit *NIX-rsync und rsyncd. Ein bewährtes, bekanntes und hocheffizientes Synchronisierungssystem. Noch.
  • Hält den Overhead klein: Nur die geänderten Daten (auch innerhalb von Dateien!) wird über das Netzwerk transportiert. Es ist also auch sehr schön, wenn Sie Telearbeit leisten oder über langsame Verbindungen eine Verbindung zu Ihrem Server herstellen.
  • Failsafe, offenbar. Ich habe im Laufe der Jahre viele, viele Gigabyte Daten rsync ' d, und beim "Patchen" der Zieldateien ist kein Fehler aufgetreten. Auch wenn ich das Konzept zunächst etwas besorgniserregend fand.
  • Ich verwende DeltyCopy immer noch, um Dateien von Windows-Computern sowohl auf einem zentralen Linux-Server als auch auf einem Windows 2003-Server auf einem täglichen basis. Funktioniert sehr gut und sicher, wenn richtig installiert.

Nun, bis zu dir. Viel Vergnügen! (Und lassen Sie uns über FreeFileSync wissen!)

 1
Author: Moonbase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-02-25 23:06:32

Ein nützlicher Befehl ist xcopy /m src\* dest. dadurch werden alle Dateien von src nach dest kopiert und löscht das Archivbit für alle src-Dateien. Wenn Sie eine src-Datei berühren, legt Windows automatisch das Archivbit fest. Wenn Sie das nächste Mal xcopy /m ausführen, werden nur die geänderten Dateien kopiert.

Wenn Sie es kontinuierlich ausführen möchten, schreiben Sie ein kleines Skript wie

@echo off
echo Watching for changes to %1 ...
:top
xcopy /m /y %1\* %2 | find /v "File(s) copied"
timeout /t 2 >nul
goto :top
 1
Author: John Henckel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-31 18:22:45