Dlaczego rsync nie przyjął się w świecie Windows? [Zamknięte]


97

Wygląda na to, że rsync to de facto standard wydajnego tworzenia kopii zapasowych plików i synchronizacji w systemach Unix / Linux.

Czy ktoś ma jakieś przemyślenia, dlaczego nie złapałby się w świecie Windows?

Dlaczego nie stał się uniwersalnym „protokołem” do synchronizacji plików?


4
To dlatego, że nie ma przyzwoitego portu i dlatego, że ludzie z Windows są przyzwyczajeni do To po prostu działa. Istniejące niezupełnie porty to duża PITA.
RomanSt

1
Windows już zapewnia synchronizację delta za pośrednictwem DFS i RDC, które można centralnie zarządzać, masowo wdrażać, konfigurować itp.
Panagiotis Kanavos

@ p.campbell, Jest cwrsync dla systemu Windows
Pacerier

Odpowiedzi:


48

Powiedziałbym głównie, że ludzie w oknach nie są tego świadomi. Rsync to narzędzie wiersza polecenia, które jest zgodne z filozofią uniksową polegającą na preinstalowaniu wielu małych narzędzi. Filozofia systemu Windows opiera się na aplikacjach GUI, które wszystkie są pobierane i instalowane osobno. Nie ma miejsca na płynną integrację, w którym rsync byłby oczywisty lub miałby sens, a uruchamianie poleceń w systemie Windows jest co najmniej nużące.

Ponadto rsync naprawdę świeci, gdy jest częścią większej aplikacji (powiedzmy do konsolidacji i parsowania logów) lub jako zautomatyzowany system archiwizacji (łatwy w implementacji z cronjob). Windows po prostu nie ma innych narzędzi w ekosystemie, aby korzystanie z rsync było faktycznie wykonalne.

Na koniec powiedziałbym, że rsync jest po prostu zbyt skomplikowany. Każdy, kto go używa, ma wcześniej ustawioną grupę flag (moja to -avuz), która generalnie robi to, czego chce, ale strony podręcznika / dokumentacja zawierają dziesiątki przełączników wiersza poleceń, niektóre z nich to połączenie innych przełączników. Na przykład (ze [strony podręcznika] [1]):

-a, --archive : tryb archiwizacji; równa się -rlptgoD (bez -H, -A, -X)

Jest to szybki sposób na powiedzenie, że chcesz rekurencji i chcesz zachować prawie wszystko (z -H jest zauważalnym pominięciem). Jedynym wyjątkiem od powyższej równoważności jest to, że podano --files-from, w którym to przypadku nie sugeruje się -r.

Użytkownicy systemu Windows ogólnie oczekują, no cóż, okien i menu, a jedna aplikacja będzie rozwiązaniem kompleksowym, a nie tylko niezależnym łańcuchem narzędzi.


11
Całkowicie się z tobą zgadzam ! Strony podręcznika są najgorszym sposobem na zrozumienie rsync i wielu innych aplikacji.
Antoine Benkemoun

2
W rzeczywistości jest na odwrót. Ludzie UNIX / Linux nie wiedzą, że system Windows zapewnia DFS i RDC przynajmniej od 2006 roku. Łatwo jest konfigurować, zarządzać i wdrażać w całych domenach (tj. Setkach lub tysiącach komputerów stacjonarnych z dziesiątkami lub setkami klientów).
Panagiotis Kanavos

3
@PanagiotisKanavos Tyle że DFS różni się od rsync. NFS (lub wiele innych protokołów) są dostępne w systemie operacyjnym opartym na systemie Linux, ale rsync jest zwykle używany do tworzenia kopii zapasowych etapów, jednorazowych transferów itp. Jabłka i pomarańcze.
Andrew White,

5
@Pacerier: „Linia poleceń to linia poleceń”? Jesteś albo wyjątkowo tolerancyjny, albo znasz tylko jednego, a nie pozostałych. Dla każdej normalnej osoby, która zna Bash w Linuksie / Mac (lub dowolnej innej powłoce uniksowej), cmd.exe jest tak okaleczony, że stwierdzenie, że jest „co najwyżej nudne”, wciąż jest niedopowiedzeniem.
mivk

2
„i uruchamianie poleceń w systemie Windows jest co najwyżej nużące”. - albo nie zrobiłeś wiele z tego, nigdy nie słyszałeś o Powershell, jesteś fanem Linuksa, lub wszystkie powyższe. Tak naprawdę nie różni się to od robienia tego w Linuksie.
Alan B,

63

Dziwi mnie, że nikt nie wspomniał o DeltaCopy , która jest rsync spakowana w GUI systemu Windows. Może nawet zainstalować się jako usługa kompatybilna z rsyncd.


3
+1 Nie mogę głosować wystarczająco. DeltaCopy to sposób, w jaki wykonujemy kopię zapasową kilku serwerów linuksowych na naszym serwerze kopii zapasowych opartym na systemie Windows. Rsync na Ubuntu bezpośrednio do klienta DeltaCopy w systemie Windows.
Matt Everson

wydaje się, że nie gra dobrze z uprawnieniami bezpieczeństwa NTFS
JamesRyan

Czy to może pobierać pliki przez SSH, bez rsyncd na zdalnym komputerze z systemem Linux?
Cees Timmerman

1
Gdy rsync działa nad ssh, uruchamia proces rsync po drugiej stronie. Nie musisz konfigurować samodzielnego programu rsyncd działającego na pilocie, ale musisz go zainstalować.
Sekenre

DeltaCopy jako serwer w systemie Windows, skrypt cron uruchamiający rsync na Linux-ie i rsnaphot, aby uzyskać kopie zapasowe „Time Machine”. Bezcenny.
MGP,

11

Moim zdaniem, ponieważ nie ma przyzwoitego GUI.

Innym argumentem może być robocopy. Robocopy nie ma wielu fajnych funkcji, które oferuje rsync, ale w większości sytuacji robocopy jest wystarczające do wykonania zadania.


4
robocopy nie robi nic, aby zoptymalizować zdalne kopie, co jest główną innowacją rsync. powiedziałbym, że brak spiczastego GUI to jedyna wymówka, by tego nie spróbować
Javier

2
W świecie Windows praca z plikami „zdalnymi” często obejmuje udostępnianie dysku zdalnego, a następnie wykonywanie operacji na plikach „lokalnych”. I do tego wystarczy robocopy.

9

Używam rsync Cygwin intensywnie i działa bardzo dobrze.

Ale ...

Jest to robak instalujący i konfigurujący. Musisz wykonać pełną instalację Cygwin, aby uzyskać jeden plik binarny i trzy pliki dll, i nie jest oczywiste, które trzy dll są potrzebne. Sposób uruchomienia go jako usługi nie jest oczywisty, a składnia wiersza poleceń jest złożona. Non-frajerzy lubią się bardzo szybko poddawać.

Ponadto miesza uprawnienia do punktu, w którym zawsze ustawiam cygwin = nontsec, i regularnie się zawiesza. Rozumiem, że zawieszenie jest znanym problemem z biblioteką DLL Cygwin, a nie samą rsync (co nie jest krytyką chłopaków Cygwin. To, co osiągnęli, nie jest niczym cudownym!).

Rsync jest niezwykle przydatny, jeśli wykonujesz replikację za pośrednictwem łączy WAN, a na mojej liście rzeczy do zrobienia jest napisanie natywnej wersji Win32. Niestety od kilku lat znajduje się na mojej liście rzeczy do zrobienia i nie jest bliżej szczytu. Nie sądzę, aby napisanie opakowania GUI było dużym krokiem naprzód, ponieważ nie rozwiązuje niektórych podstawowych problemów z wersją Cygwin.

Jeśli ktoś jest zainteresowany, http://www.ratsauce.co.uk/notablog/UsingRsync.asp opisuje wyniki mojego wielogodzinnego bólu zmuszającego Cygwin rsync do pracy w systemie Windows.

JR


w związku z tym, mimo że został zainstalowany i działał dobrze na moim systemie XP, Vista w ogóle go nie lubił. Rsync to firma, jeśli byłby to macierzysty port dla systemu Windows, jestem pewien, że byłby używany znacznie więcej.
gbjbaanb

Instalacja Git dla Windows daje skonfigurowane bash i CygWin po wyjęciu z pudełka. Możesz nawet wybrać integrację poleceń unixowych z CMD. Voila, zapomniałem użyć PowerShell lub CMD)
it3xl

8

Powiedziałbym, że w przypadku mniejszych synchronizacji między komputerami ludzie używają Robocopy , SyncToy lub Foldershare (obecnie Live Sync). W przypadku dużych korporacyjnych scenariuszy udostępniania plików z wieloma wzorcami używają rozproszonego systemu plików (DFS) . Narzędzia te radzą sobie dobrze z większością scenariuszy synchronizacji, pozostawiając niewiele korzyści z instalowania, uczenia się i używania przekompilowanej aplikacji * nix w systemie Windows.


7

Co przeciętny użytkownik systemu Windows użyłby go dla ?


3
+1 za prawdziwość - kopia zapasowa użytkownika systemu Windows polega głównie na „przeciągnięciu i upuszczeniu go na oddzielny / zewnętrzny dysk
twardy

17
Rzadko zaznaczam odpowiedzi i nie zamierzam zaznaczać tej odpowiedzi, ale od kiedy ServerFault jest forum dla przeciętnych użytkowników systemu Windows? Dla sysadmin replikacja poza siedzibą staje się coraz ważniejsza. Duże firmy prawdopodobnie kupią DPM, aby korzystać z ich połączeń T3. My, humbler, potrzebujemy czegoś, co będzie działało z prędkością wysyłania ADSL, a rsync robi to bardzo dobrze.
John Rennie,

3
@John: tak, ale ludzie nie będą używać rsync, chyba że wiedzą, że istnieje. rsync był używany i przydatny do „typowych” użytkowników * nix od wieków, więc każdy sysadmin * nix wart swojej soli wie o tym. W systemie Windows? Nie tak bardzo. Windows jest (i zapewne ważniejsze, został skierowany na inną publiczność, jeden, który nie był zainteresowany, lub używać do, narzędzia podoba. A ponieważ w systemie Windows administratorzy zwykle zaczynają jako systemu Windows użytkowników , narzędzia, których używają są pod wpływem jakich narzędzi Użytkownicy Windows używają dwóch różnych problemów ( dlaczego to nie jest popularne, czy byłoby to przydatne )
czerwiec

Właśnie odpowiedział były, nie mam wątpliwości, że wskazane byłoby
jalf

Tak, ale istnieje wiele serwerów Windwos, które również wymagają kopii zapasowej.
kiltek 18.04.17

4

IMO:

Rsync jest znacznie rzadziej instalowany na komputerach, na które można się natknąć w świecie Windows, podczas gdy często jest instalowany Resource Kit z robocopy (lub przynajmniej znajduje się na „zatwierdzonej” liście oprogramowania, które można zainstalować w systemie produkcyjnym).

Jak zauważyli inni, robocopy jest na ogół więcej niż wystarczające do skórowania każdego kota pod ręką. Może nie jest tak ładny jak rsync, ale jest to dobre narzędzie.

Brak GUI może być czynnikiem, ale mimo że dostępny jest interfejs robocopy, uważam, że większość ludzi odkrywa potrzebne przełączniki robocopy i umieszcza go w pliku .bat.


W systemie Windows 2008 (i powyżej, jak sądzę) robocopy jest dołączone do systemu operacyjnego, więc nie trzeba go już instalować.
mrdenny

Nie zdawałem sobie z tego sprawy. Dzięki za informację ... w naszym środowisku minęło co najmniej rok od 2008 roku i nie nadążyłem od czasu odejścia z administracji AD.
damorg

Robocopy jest domyślnie instalowany także w systemie Vista i Windows 7, a także prawdopodobnie w ich odpowiednikach PE.
Oskar Duveborn

Robocopy nie przesyła tylko ZMIENIONYCH części plików, więc duże pliki z małymi zmianami kopiują się bardzo wolno w porównaniu z tym, co robi rsync.
JustinP

4

Używam robocopy w systemie Windows - który jest fabrycznie zainstalowany w systemie Windows Vista i Windows 7 i jest zgodny z każdą sytuacją tworzenia kopii zapasowych, jaką napotkałem do tej pory.


2

Domyślam się, że po prostu nie ma GUI. Dla łatwych zadań synchronizacji Microsoft oferuje nawet Sync Toy, a rsync może zrobić znacznie więcej ...


Właściwie jest do tego GUI: sepiola.org/en/home Rozmawiałem kiedyś z deweloperami Sepioli i powiedzieli mi, że właśnie stworzyli GUI wokół rsync.

2
Zrewidowałem to, ponieważ sugeruje to, że sysadmini systemu Windows są zgubieni bez GUI. Co tak naprawdę nie jest prawdą; większość dobrych administratorów jest w porządku z narzędziami wiersza poleceń.
quux

2

Co gorsza, istnieje doskonale funkcjonalny rsync dla Windows , który nie wymaga instalacji Cygwin. Używam go do tworzenia kopii zapasowych różnych części moich danych na różnych dyskach. Warto wykluczyć określone katalogi, ale prawdopodobnie robią to również inne narzędzia.

Nestor


Nadal używa Cygwin, co oznacza, że ​​dll może zadzierać z innymi aplikacjami, które mogą korzystać z Cygwin. W takich przypadkach lepiej jest po prostu zainstalować Cygwin.
dlamblin

2

O rany, najwyraźniej brakuje wam narzędzia „Unison”. Wspieram niektóre główne infrastruktury „w czasie rzeczywistym” US / EUR i muszę powiedzieć, że każdy ma bardzo podobne problemy ... jak się powielać i być w stanie być aktywnym przez cały czas ... jeśli cię to nie obchodzi co do trwałości sesji, to ta bomba ... najlepsza rzecz, jaką znalazłem w dodatkach solaris :-)



0

Wierzę, że rsync może być używany pod cygwin w systemie Windows :) cygwin jest łatwy w instalacji i obsłudze, jednak dla zwykłych użytkowników, którzy kochają GUI, nie jest to zbyt częste. więc otrzymujemy dwie bariery:

1) brak nakładki GUI

2) nawet jeśli na przykład w tcl / tk był interfejs GUI - potrzeba zainstalowania programu cygwin jest barierą.

a rsync nie jest oprogramowaniem prawnie zastrzeżonym, które chce się sprzedawać i dlatego stara się eliminować bariery przed potencjalnymi klientami. Jak mówi Joel: wyeliminowanie jednej bariery podwaja bazę użytkowników. Mamy więc bariery dla użytkowników systemu Windows - w konsekwencji mała baza użytkowników na platformie Windows.


0

Używam robocopy do zachowania podobnego do rsync w Windows.

Zasadniczo napisałem plik backup.bat, który mam na dysku zewnętrznym. Regularnie uruchamiam ten plik, aby utworzyć kopię zapasową komputerów stacjonarnych na dysku zewnętrznym. Następnie przechowuję dysk zewnętrzny w ognioodpornym sejfie.



0

Dokładnie z tego samego powodu tari bzip2niespotykane. Bardzo dobrze nie pasuje do systemu Windows. spakowanie katalogu i przeniesienie go do SMB lepiej pasuje do systemu Windows i w wielu przypadkach wydaje się prawie tak szybkie. To nie jest tak naprawdę moje marzenie o lepszym świecie, ale rzeczywistość, z którą trzeba się zmagać. Większość komputerów z systemem Windows nie ma zainstalowanej żadnej warstwy uniksowej. W przeciwieństwie do Mac OS X.


0

Istnieje kilka nowszych GUI rsync w fazie rozwoju. Ostatnio natknąłem się na wikipedię - yintersync . Wygląda dość kompleksowo jako GUI dla rsync w systemie Windows i raczej zgrabnie obsługuje kopie w tle do replikacji plików na żywo.

Niedawno przetestowałem to na moim systemie dr pracy z dobrymi wynikami. Ma wbudowany harmonogram i raporty e-mail. Może to pomóc rsyncowi w końcu złapać tłum Windows


0

Brak GUI nie jest tak naprawdę problemem. xacls, robocopy, net, sc są bardzo przydatne i nie mają żadnych GUI. Uważam, że jeśli rsync nie jest używany, bardziej wynika to z faktu, że:

  1. W systemie Windows brakuje prawdziwej powłoki i prawdziwego języka skryptowego. Ludzie używający partii również korzystają z robocopy.
  2. Od 95 roku system Windows jest wyposażony w łatwe w użyciu narzędzie graficzne (o nazwie „dokument Porte” we francuskiej wersji). Od Windows 2000 (lub XP?) W eksploratorze jest dostępne menu „synchronizacji”.

Definicja „prawdziwa” to? ^^
Oskar Duveborn

Prawdziwa powłoka pozwala dostosować więcej niż monit, rozmiar okna lub kafelek. Oferuje możliwość wykonywania wszystkich zadań, które chcesz (zarządzanie kontami użytkowników, dostosowywanie konfiguracji systemu, ...). Prawdziwy język skryptowy pozwala zdefiniować środowisko (czy kiedykolwiek próbowałeś użyć polecenia „data” w środowisku obejmującym wiele krajów?) I może być używany w interakcyjnym pytaniu (w przeciwieństwie do vbs / js).
Benoit,

PowerShell spełnia wszystkie Twoje wymagania i jest częścią systemu Windows od 2006 roku. Integruje się z .NET, więc w niektórych przypadkach wolę Bash.
James
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.