Ich habe MinGW (auch bekannt als „Git Bash“) unter Windows 7 und eine Batch-Datei, die rsync ausführt, um Dateien auf einem externen Laufwerk auf einem Remote-Linux-Computer zu sichern. Hier ist die Batch-Datei (my_rsync_file.bat
)
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60 --exclude Downloads . '[email protected]:/media/my_remote_linux_computer/LaCie/My\ Documents'"
Hier ist eine kleine zeilenweise Erklärung:
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
Dies gibt nur eine Nachricht aus, um mich daran zu erinnern, was los ist.
cd ../
Dadurch wird das Verzeichnis eine Ebene höher als die Batch-Datei geändert (zu „Eigene Dateien“). Die Batchdatei befindet sich auf einem externen Laufwerk auf meinem Windows-Computer. Ich möchte den gesamten Ordner „Eigene Dateien“ auf diesem externen Laufwerk mit einem gleichnamigen Ordner auf einem externen Laufwerk auf meinem Remote-Linux-Computer synchronisieren.
REM starting rsync...
Druckt einfach eine weitere Nachricht.
bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . [email protected]:/media/my_remote_linux_computer/LaCie/My\\ Documents"
bash
:startet MinGW, das eine eingebaute rsync-Bibliothek hat
-c
:nicht sicher, was das tut
rsync
:Bibliothek zum Synchronisieren von Dateien, kommt mit MinGW
-avzh
:a-Archive, v-Verbose, z-Compress, h-Human-readable, das sind die gängigen Optionen (mehr:http://linux.die.net/man/1/rsync)
-P
:Fortschritt für große Dateien anzeigen, damit ich weiß, ob sie eingefroren sind oder nicht
--stats
:Zusammenfassung anzeigen, wie viele Dateien und Bytes am Ende übertragen wurden
--timeout=60
:Töte es nach 60 Sekunden, wenn es stecken bleibt
--exclude
Dateien/Verzeichnisse von der Synchronisierung auslassen, in diesem Fall schließe ich ein Verzeichnis namens „Downloads“ aus
.
:Gibt an, dass der gesamte Inhalt von „Eigene Dateien“ synchronisiert werden soll (erwarten Sie, dass die angegebene Sache in der obigen Zeile ausgeschlossen wird).
my_remote_linux_computer
:Name meines Remote-Linux-Computers (nicht der tatsächliche Name;)
@128.95.155.200
:die IP-Adresse meines Remote-Linux-Computers von https://www.whatismyip.com/ (nicht meine tatsächliche IP-Adresse :)
/media/my_remote_linux_computer/LaCie/My\\ Documents
:Der Pfad zu dem Verzeichnis auf meinem Remote-Linux-Computer, in dem ich die Dateien erhalten möchte. Es ist ein externes Laufwerk.
Beachten Sie, dass das Leerzeichen in „Eigene Dateien“ mit zwei umgekehrten Schrägstrichen maskiert ist und der vollständige Name und das Verzeichnis des Remote-Ziels in doppelte Anführungszeichen eingeschlossen sind.
Wenn ich auf die bat-Datei doppelklicke, werde ich nach dem Passwort für meinen Remote-Linux-Computer gefragt. Wenn es fertig ist, erhalte ich eine zusammenfassende Ausgabe und werde aufgefordert, eine beliebige Taste zum Schließen zu drücken.
Wenn Sie eine kostenlose App suchen, die cygwin und rsync mit einer netten grafischen Oberfläche bündelt, werfen Sie einen Blick auf Deltacopy :
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
- Inkrementelle Sicherung - Kopiert einen Teil der Datei, der tatsächlich geändert wird
- Aufgabenplaner - Profile in DeltaCopy können nach Zeitplan ausgeführt werden
- E-Mail-Benachrichtigung - Administratoren können sowohl bei erfolgreichen als auch bei fehlgeschlagenen Übertragungen eine E-Mail-Bestätigung erhalten
- Ein-Klick-Wiederherstellung - Gesicherte Dateien können einfach wiederhergestellt werden.
- Windows-freundliche Umgebung - Keine Notwendigkeit, Konfigurationsdateien manuell zu ändern oder mit Befehlszeilenoptionen herumzuspielen.
Eine Option könnte darin bestehen, rsync zu installieren, indem Sie cygwin unter Windows installieren. Dafür gibt es wahrscheinlich einen viel direkteren Ansatz.
Eine andere Option könnte sein, von der Linux-Seite aus zu rsyncen – Sie könnten ein Mittel für den Remote-Rechner einrichten, um auf lokale Dateien zuzugreifen, und dann von dort aus rsyncen (sehen Sie sich das Mounten von smb/cifs-Freigaben an).
Ich vermute, dass es noch bessere Optionen gibt, aber vielleicht hilft das ein bisschen.
Aktualisierung für 2017
Mit dem in Windows 10 verfügbaren Linux-Subsystem können Sie wahrscheinlich sehr einfach einen ssh- und rsync-Server installieren und damit rsync mit Windows verwenden.