Mam trzy okna systemu Windows, które są połączone z linuxem w mojej sieci na różne sposoby (jeden lokalny w sieci, jeden jest laptopem i może być lokalny, a drugi to mój pulpit roboczy). Obecnie używam git do synchronizacji większości moich rzeczy między urządzeniami (używając Linuxa jako serwera) i działa jak mistrz.
Teraz jednak chciałbym również dodać moją kolekcję MP3 (12 koncertów), aby skutecznie synchronizować między urządzeniami. Początkowo myślałem, że mogę do tego użyć git, ale wygląda na to, że rsync byłby lepszym wyborem, ponieważ tak naprawdę nie potrzebuję wszystkich historycznych rzeczy. Ponieważ wszystkie moje istniejące skrypty zarządzania działają pod git bash (zamiast cygwin), chciałbym móc używać go z git bash (MINGW32 to, co jest napisane w pasku tytułowym okna). Czy mogę po prostu pobrać go w Cygwin i skopiować go, czy jest lepszy sposób na to? Linux zawiera najnowszą wersję Ubuntu Server Edition - czy muszę coś zrobić, aby rsync działał poprawnie na nim?
Zdaję sobie sprawę, że prawdopodobnie robię to w nieco trudniejszy sposób, niż jest to potrzebne, ale używam tego również jako ćwiczenia do doskonalenia umiejętności w zakresie poleceń. Jakieś sugestie?
Mogę używać rsync z mojej powłoki cygwin, ale nie z msysgit. Próbowałem skopiować rsync.exe z folderu bin cygwina do folderu bin msysgita, ale nadal nie można go znaleźć. Czy jest jakiś inny krok, aby go zainstalować? Dziwne jest to, że pojawia się błąd polegający na tym, że nie można znaleźć pliku, zamiast dać mi błąd, że brakuje jednej z zależności pliku.
rsync.exe
tylko różne wersje rsync w.pkg.tar.xz
formatach. To może być OK, z wyjątkiem tego, że nie mogę zainstalowaćapt-get install xz-utils
(sudo apt-get install xz-utils
), ponieważ nie mogę zainstalowaćsudo
LUBapt-get
w Git Bash dla Windows :-( i tym samym nie mogę zainstalowaćxz-utils
. Czy jest jakiś sposób na obejście tego? Czy istnieje nowszy link, gdzie mogę uzyskaćrsync.exe
, lub w jakiś sposób mogę zmusić Git Bash do rozpakowania tego pliku .xz?tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
otrzymuję kilka komunikatów stwierdzające, że:Cannot open: Permission denied
,Cannot mkdir: Permission denied
,Cannot mkdir: No such file or directory
iCannot open: No such file or directory
dla różnych plików / katalogów. Może Git Bash już wie, jak rozpakowaćxz
pliki? Ale czy b / e uprawnień nie jest możliwe? Nie mogę użyć ani zainstalowaćsudo
. do 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
folderu.Wiem, że pytanie nie brzmi „Używanie rsync dla MSYS”, ale myślę, że wspomnienie o tym jest istotne:
„MinGW Shell” (wcześniej najlepiej znany jako „MSYS (Basic System)”) rzeczywiście ma rsync. Używam tej powłoki / systemu tak często, jak to możliwe, ponieważ jest ona znacznie mniejsza niż Cygwin. (Prawdopodobnie jestem jedynym, który obecnie dba o rozmiary plików).
„Git dla Windows” / „Git Bash” może łatwo dodać rsync, ponieważ jest oparty na MinGW / MSYS i został wspomniany wcześniej na liście mailingowej.
PS! Jeśli twoja powłoka MinGW nie ma rsync, po prostu uruchom „mingw-get install msys-rsync”, aby go dodać.
Zaktualizowano 25 marca 2016 r .:
Git dla Windows używa teraz MSYS2. MSYS2 używa „pacman”, a nie „mingw-get”, do instalowania pakietów. Niestety „Git dla Windows” nie obejmuje Pacmana ... Istnieją dwie opcje:
Ostatnia opcja jest moją ulubioną, ale nie została jeszcze usprawniona, więc pierwsza opcja jest prawdopodobnie łatwiejsza. Mamy nadzieję, że zostanie to naprawione .
PS! Nie grałem dużo z MSYS2 / pacman, ale wydaje się to bardzo obiecujące.
Zaktualizowano 7 sierpnia 2019 r .:
Jeśli używasz Git dla Windows (Git Bash), o wiele lepiej jest po prostu pobrać pakiet rsync z repozytorium pakietów MSYS2, jak opisano w odpowiedzi powyżej .
źródło
$ mingw-get bash: mingw-get: command not found
pacman -S rsync
. W przeszłości korzystałem z CygWin, ale myślę, że MSYS2 jest niesamowity, nie muszę uruchamiać GUI, aby zainstalować dodatkowe pakiety.Zakładam,
git bash
że naprawdę masz na myślimsysgit
, aka „git for windows”. Opcja menu Start togit bash
, która wyjaśnia nazwę, której użyłeś ..Po pierwsze, masz rację, odrzucając git jako opcję tutaj. Jedną z rzeczy git jest nie dobrze jest obsługa plików binarnych - i chcesz skończyć z ogromnym, nadęty repozytorium. Dodatkowo, ponieważ nie będziesz obsługiwał zmian, użycie narzutu git wydaje mi się przesadą.
Po drugie, wydaje się, że pytanie, które faktycznie zadajesz, brzmi: „Czy mogę używać rsync z msysgit / Windows?” Krótka odpowiedź brzmi: nie po wyjęciu z pudełka.
msysgit
to tak naprawdę tylko wiersz poleceń systemu Windows pod względem formy i funkcji. Biorąc to pod uwagę, masz dwie opcje: pobierz narzędzie innej firmy, aby włączyć rsync na swoim komputerze z systemem Windows ( Stack Overflow: Rsync dla Windows ), lub po prostu użyj cygwin. Naprawdę mają ten sam wynik - więc od Ciebie zależy, które z nich będą działać lepiej.źródło
msysgit
to linia poleceń systemu Windows, która obsługuje pliki wykonywalne systemu Windows. Prawdopodobnie dzieje się tak, że nawet nie jest w stanie wykryć pliku jako wykonywalnego. Mówiąc najprościej, cygwin i msysgit nie są nawet zdalnie kompatybilne.cygiconv-2.dll
,cygwin1.dll
arsync.exe
od Cygwin do ścieżki msysgit. Nic więcej (szczególnie nie ssh.exe). Problemem jest zwykle niezgodność między Git SSH a Cygwin / rsync SSH. Staraj się zachować tę samą wersję. Nadal będziesz mieć problemy z,/cygdrive/
ale nie mam rozwiązania opróczcd
.Warto było mieć podobne problemy z uruchomieniem cwRsync w msysgit po upuszczeniu na ścieżkę bin, ale po wypróbowaniu wielu różnych rzeczy w końcu okazało się, że po prostu aktualizacja do najnowszej wersji (2.10.2) Git dla Windows naprawiła kwestia.
źródło
rsync jest doskonałym narzędziem do synchronizacji jednokierunkowej. Możesz uruchomić rsync w programie cygwin lub w systemie Windows dostępna jest także Deltacopy
Jeśli chcesz mieć synchronizację dwukierunkową, spójrz na unisono
Dla przekroju narzędzia synchronizacji katalogów platforma istnieje syncthing który działa na większości platform.
źródło