GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwende ich rsync vom Windows-PC zum Remote-Linux-Server?

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.


Linux
  1. So verwenden Sie Rsync zum Synchronisieren neuer oder geänderter/geänderter Dateien in Linux

  2. So verwenden Sie den Linux-Rsync-Befehl (Remote-Synchronisierung).

  3. So verwenden Sie rsyslog zum Erstellen eines Linux-Protokollaggregationsservers

  4. So mounten Sie die Remote-Windows-Freigabe unter Linux

  5. Wie man SSH unter Linux von Android aus macht

So synchronisieren Sie Dateien automatisch zwischen zwei Linux-Servern

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

So verwenden Sie Linux-FTP-Befehle

Wie Sie von Windows aus SSH in Ihren Linux-Server einbinden

So verwenden Sie Rsync zum Kopieren/Synchronisieren von Dateien zwischen Servern

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen