Ich habe drei Windows-Boxen, die auf verschiedene Arten mit einer Linux-Box in meinem Netzwerk verbunden sind (eine ist lokal im Netzwerk, eine ist ein Laptop und kann lokal sein oder nicht, und die andere ist mein Arbeitsdesktop). Ich benutze derzeit git, um die meisten meiner Sachen zwischen den Boxen zu synchronisieren (unter Verwendung der Linux-Box als Server) und es funktioniert wie ein Champion.
Jetzt möchte ich jedoch auch meine MP3-Sammlung (12 Gigs) hinzufügen, um eine effiziente Synchronisierung zwischen Boxen zu ermöglichen. Anfangs dachte ich, ich könnte git dafür verwenden, aber es sieht so aus, als wäre rsync eine bessere Wahl, da ich nicht wirklich alle historischen Dinge brauche. Da alle meine vorhandenen Verwaltungsskripte unter git bash (anstelle von cygwin) ausgeführt werden, möchte ich sie über git bash verwenden können (MINGW32 steht in der Titelleiste des Fensters). Kann ich es einfach in Cygwin herunterladen und kopieren oder gibt es einen besseren Weg, es zu erreichen? Auf der Linux-Box wird die neueste Version von Ubuntu Server Edition ausgeführt. Muss ich irgendetwas tun, damit rsync ordnungsgemäß funktioniert?
Mir ist klar, dass ich das wahrscheinlich etwas härter mache als nötig, aber ich benutze es auch als Übung, um meine Kommandozeilenfähigkeiten zu verbessern. Irgendwelche Vorschläge?
Ich kann rsync von meiner Cygwin-Shell aus verwenden, aber nicht von msysgit. Ich habe versucht, rsync.exe aus dem bin-Ordner von cygwin in den bin-Ordner von msysgit zu kopieren, aber es wird immer noch nicht gefunden. Muss ich noch einen weiteren Schritt ausführen, um es dort zu installieren? Es ist seltsam, dass ich einen Fehler erhalte, dass die Datei nicht gefunden werden kann, anstatt mir einen Fehler zu melden, dass eine der Abhängigkeiten der Datei fehlt.
rsync.exe
nur verschiedene Versionen von rsync in.pkg.tar.xz
Formaten. Das mag in Ordnung sein, außer , dass ich nicht installieren kannapt-get install xz-utils
(sudo apt-get install xz-utils
) , weil ich weder installierensudo
oderapt-get
zu Git Bash für Windows :-( und damit also nicht installiert werden kannxz-utils
. Gibt es eine Möglichkeit , um dies? Gibt es einen neuen Link , wo ich bekommen kannrsync.exe
, odertar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
, ich ein paar Nachrichten bekommen besagt:Cannot open: Permission denied
,Cannot mkdir: Permission denied
,Cannot mkdir: No such file or directory
undCannot open: No such file or directory
für verschiedene Dateien / Verzeichnisse. Vielleicht weiß Git Bash schon, wie manxz
Dateien dekomprimiert ? Aber können nicht von Berechtigungen b / e? Ich kann nicht verwenden oder installierensudo
. zu Git Bash.cd / && tar Jxvf /c/Users/$USR/Downloads/rsync-3.1.3-1-x86_64.pkg.tar.xz
C:\Program Files\Git\usr\bin
Ordner zu legen.Ich weiß, dass die Frage nicht "Verwenden von rsync für MSYS" ist, aber ich denke, dies zu erwähnen ist relevant:
"MinGW Shell" (früher bekannt als "MSYS (Basic System)") hat in der Tat rsync. Ich benutze diese Shell / dieses System so oft wie möglich, da es viel kleiner als Cygwin ist. (Ich bin wahrscheinlich der einzige, der sich heutzutage um die Dateigröße kümmert.)
"Git für Windows" / "Git Bash" kann leicht rsync hinzufügen, da es auf MinGW / MSYS basiert und bereits in der Mailingliste erwähnt wurde.
PS! Wenn Ihre MinGW-Shell nicht über rsync verfügt, führen Sie einfach "mingw-get install msys-rsync" aus, um es hinzuzufügen.
Aktualisiert am 25. März 2016:
Git für Windows verwendet jetzt MSYS2. Und MSYS2 verwendet "pacman" und nicht "mingw-get", um Pakete zu installieren. Leider enthält "Git for Windows" kein Pacman ... Es gibt zwei Möglichkeiten:
Die letzte Option ist meine Lieblingsoption, aber sie ist noch nicht optimiert, sodass die erste Option wahrscheinlich einfacher ist. Hoffentlich wird es behoben .
PS! Ich habe nicht viel mit MSYS2 / Pacman gespielt, aber es scheint sehr vielversprechend.
Aktualisiert am 7. August 2019:
Wenn Sie Git für Windows (Git Bash) verwenden, ist es viel besser, das rsync-Paket aus dem MSYS2-Paket-Repository abzurufen, wie in der obigen Antwort beschrieben .
quelle
$ mingw-get bash: mingw-get: command not found
pacman -S rsync
. In der Vergangenheit habe ich CygWin verwendet, aber MSYS2 finde ich großartig. Ich muss keine GUI ausführen, um zusätzliche Pakete zu installieren.Ich nehme an,
git bash
du meinst wirklichmsysgit
"git for windows". Die Option Startmenü istgit bash
, die den von Ihnen verwendeten Namen erklärt.Erstens ist es richtig, hier git als Option zu verwerfen. Eines der Dinge, die GIT nicht gut macht, ist der Umgang mit Binärdateien - und Sie würden am Ende ein riesiges, aufgeblähtes Repository haben. Da Sie sich nicht um Änderungen kümmern müssen, erscheint mir die Verwendung des Overheads von git als Overkill.
Zweitens klingt es so, als ob die Frage, die Sie tatsächlich stellen, lautet: "Kann ich rsync von msysgit / Windows aus verwenden?" Die kurze Antwort ist, nicht out of the box.
msysgit
ist wirklich nur die Windows-Befehlszeile in Bezug auf Form und Funktion. Davon abgesehen haben Sie zwei Möglichkeiten: Laden Sie ein Tool eines Drittanbieters herunter, um rsync auf Ihrem Windows-Computer zu aktivieren ( Stapelüberlauf: Rsync für Windows ), oder verwenden Sie einfach cygwin. Wirklich, sie haben das gleiche Ergebnis - es liegt also an Ihnen, zu entscheiden, welche besser funktionieren.quelle
msysgit
ist die Windows-Befehlszeile, die ausführbare Windows-Dateien unterstützt. Was wahrscheinlich passiert, ist, dass es nicht einmal in der Lage ist, die Datei als ausführbar zu erkennen. Einfach ausgedrückt, sind cygwin und msysgit nicht einmal aus der Ferne kompatibel.cygiconv-2.dll
,cygwin1.dll
undrsync.exe
von Cygwin zu Ihrem msysgit Weg. Sonst nichts (besonders nicht ssh.exe). Das Problem ist normalerweise eine Inkompatibilität zwischen Git SSH und Cygwin / rsync SSH. Versuchen Sie, die gleiche Version beizubehalten. Du wirst immer noch Probleme mit dem haben,/cygdrive/
aber da habe ich keine Lösung außer einercd
.Für das, was es wert ist, hatte ich ähnliche Probleme, cwRsync in msysgit zum Laufen zu bringen, als ich es in den Bin-Pfad legte, aber nachdem ich viele verschiedene Dinge ausprobiert hatte, stellte sich heraus, dass das einfache Aktualisieren auf die neueste Version (2.10.2) von Git für Windows das Problem behoben hatte Problem.
quelle
rsync eignet sich hervorragend für die unidirektionale Synchronisierung. Sie können entweder rsync unter cygwin ausführen oder für Windows gibt es auch Deltacopy
Wenn Sie eine bidirektionale Synchronisierung wünschen, schauen Sie sich unisono an
Für ein plattformübergreifendes Verzeichnissynchronisierungstool gibt es Synchronisierungen, die auf den meisten Plattformen ausgeführt werden.
quelle