2010-09-22 18 views
13

Próbuję dowiedzieć się, jak pliki rsyncing są atomowe. Nie mogłem znaleźć żadnego potwierdzenia na ten temat. Ponieważ rsync mógł wysyłać tylko delty, miałem wrażenie, że aktualizuje tylko część plików na żywo.Czy operacje rsync są atomiczne na poziomie pliku?

Z drugiej strony DJB zaleca rsync do synchronizowania żywych plików .cdb i znalazłem ten wpis (http://lists.samba.org/archive/rsync/2002-April/002210.html), co oznaczałoby, że nowy plik został utworzony, a następnie przeniesiony do właściwej lokalizacji.

Czy ktoś może wskazać mi oficjalne źródło potwierdzające jedno lub drugie?

Odpowiedz

11

Rsync tworzy nowy plik tymczasowy, który będzie zawierać bloki z lokalnej (odbierającej) kopii i wszelkich bloków, których wymaga od wysyłającej kopii. Po zakończeniu plik tymczasowy zostaje przeniesiony na miejsce, zastępując oryginał.

Pełne informacje są tutaj;

http://rsync.samba.org/how-rsync-works.html

+0

Nie odpowiedziałeś na faktyczne pytanie. - Czy oznacza to, że aktualizacja każdego pliku jest atomowa? – zrajm

+0

Tak, jeśli uważasz, że operacja przeniesienia pliku w tym samym katalogu jest atomowa. –

+1

"Zastanów się"? Atomowy vs nieatomowy powinien być kwestią faktyczną, nie opinią, tak myślę? :) Czy chcesz powiedzieć, że istnieją przypadki, w których zmiana nazwy pliku w katalogu (na dysku lokalnym) jest * nie * atomowa? Jeśli tak, kiedy to się stanie? – zrajm

1

nr, rsync nie zapisywać pliki atomowo.

Podczas przenoszenia ukryty plik tymczasowy jest tworzony w tym samym katalogu docelowym (.[original-filename].[6-random-characters]), który zawiera przesłany plik w jego bieżącym stanie.

Gdyby zdarzy ci się stracić połączenia podczas przesyłania lub rsync spotkań inny problem, powodując połączenie zostanie zamknięte, przed zabiciem proces rsync upewnij się, aby skopiować plik tymczasowy w celu utrzymania wszystkich już przesłanych pakietów . Możesz po prostu zmienić nazwę pliku tymczasowego (usunąć początkowe "." I końcowe ".xxxxxx", aby uzyskać oryginalną nazwę pliku).

Powiązane problemy