rsync zajmuje bardzo dużo czasu, aby wysłać listę plików

14

Próbuję użyć rsync do utworzenia kopii zapasowej niektórych plików z wewnętrznego dysku twardego na dysk USB. (Pracuję na NAS My WD WD)

Są dwa foldery, które chcę wykonać kopię zapasową. Folder muzyczny i folder wideo. Folder muzyczny (864 plików, około 10 GB) działał idealnie w około 1 godzinę (dla pełnego postępu).

Ale folder wideo (1025 plików, około 700 GB) nadal znajduje się na „wysyłaniu przyrostowej listy plików” przez 8 godzin. Nie sądzę, żeby cokolwiek zostało przeniesione. Co może spowodować taką różnicę? W folderze wideo nie ma o wiele więcej plików. Tak, jest o wiele większy, ale myślę, że nie powinno to mieć wpływu na generowanie listy plików.

Używam tego polecenia rsync:

/shares/extern # rsync -avPc --stats /shares/Public/Shared\ Videos /shares/extern/

Teraz, odkąd pracuję na serwerze NAS, nie mam tak dużej mocy procesora, ale myślę, że to zdecydowanie za długo.

Jak myślisz, czy to zachowanie jest normalne? Czy są jakieś sugestie, co mogę zrobić, aby trochę przyspieszyć?

Używam rsync 3.0.2

Graslandpinguin
źródło
2
Proszę nie umieszczać odpowiedzi w treści pytania. Możesz dodać własną odpowiedź, jeśli żadne aktualne odpowiedzi nie są poprawne, lub skomentować odpowiedzi innych osób, jeśli masz coś do dodania. Dzięki!
Caleb

Odpowiedzi:

26

Ta -copcja zmusza rsync do obliczenia sumy kontrolnej dla wszystkich plików. Oznacza to, że odczytuje zawartość wszystkich plików wideo, zanim zacznie decydować, które z nich skopiować. To oczywiście powolne.

W miarę możliwości rozważ usunięcie tej opcji. Potrzebujesz go tylko w rzadkich przypadkach. Więcej informacji można znaleźć w opisie na stronie podręcznika:

Zauważ, że rsync zawsze sprawdza, czy każdy przesłany plik został poprawnie zrekonstruowany po stronie odbierającej, sprawdzając sumę kontrolną całego pliku, która jest generowana podczas przesyłania pliku, ale automatyczna weryfikacja po przesłaniu nie ma nic wspólnego z tą opcją przed- the-transfer „Czy ten plik wymaga aktualizacji?” czek.

kłapnięcie
źródło
och dzięki za podpowiedź. po przeczytaniu strony podręcznika mogę powiedzieć, że nie zrozumiałem opcji -c. Myślałem, że sprawdza po skopiowaniu z sumą kontrolną. Dzięki za pomoc!
Graslandpinguin
@CaptnLenz, chętnie pomoże. Proszę rozważyć kliknięcie znacznika po lewej stronie mojej odpowiedzi, aby zaakceptować moje rozwiązanie.
przyciągnąć
Miałem ten problem, ponieważ przekazałem „-archive” zamiast „--archive” do polecenia rsync. rsync uważał „-archiwum” za wariant -c.
Leons,
4
Aby rozwinąć komentarz @Leons, -archive jest postrzegany jako -a -r -c -h -i -v -e, wszystkie prawidłowe przełączniki. Podstępny mały błąd.
Mark C
Zaraz, jaka jest różnica między sprawdzaniem sumy kontrolnej a sprawdzaniem rozmiaru pliku / daty modyfikacji? Czy sprawdzanie sumy kontrolnej faktycznie zajmuje o wiele dłużej niż sprawdzanie tylko rozmiaru pliku / daty modyfikacji? Czy rsync zapisuje sumy kontrolne po pierwszym uruchomieniu, czy też oblicza je wszystkie od zera za każdym razem?
Ken