Rsync może ponownie kopiować pliki, których widoczny rozmiar i data są zgodne, gdy ich surowe czasy modyfikacji, reguły porównywania lub opcje transferu nadal się różnią.
Przeglądarki plików często ukrywają znaczniki czasu z dokładnością do ułamków sekund i pokazują tylko zaokrągloną datę lokalną, podczas gdy Rsync porównuje metadane udostępniane przez każdy punkt końcowy. Można mu również nakazać ignorowanie zgodności czasu, porównywanie sum kontrolnych lub aktualizowanie metadanych. Dlatego zadanie może raportować ten sam czytelny dla człowieka rozmiar i datę, a mimo to wybrać plik, ponieważ różnią się nanosekundy, jeden system plików zaokrągla czas, klient SMB ponownie zapisuje znacznik czasu albo polecenie jawnie pomija standardowe szybkie sprawdzanie.
Potwierdź, że Rsync wybiera plik do transferu danych
Uruchom zadanie w trybie testowym z wyszczególnianiem zmian i zapisz dokładne polecenie, ścieżkę źródłową, ścieżkę docelową, wersje Rsync oraz jedną reprezentatywną nazwę pliku.
Oficjalna instrukcja Rsync wyjaśnia, że domyślne szybkie sprawdzanie porównuje rozmiar pliku i czas modyfikacji, natomiast wyszczególnione dane wyjściowe wskazują, które atrybuty spowodowały aktualizację.
Jeśli kod wyszczególnionych zmian pokazuje tylko zmiany uprawnień, właściciela, grupy, listy ACL lub atrybutów rozszerzonych, plik może zostać ponownie przetworzony bez ponownego przesyłania całej zawartości.
Porównaj surowe czasy modyfikacji zamiast wyświetlanej daty
Odczytaj czasy modyfikacji źródła i miejsca docelowego z dokładnością do nanosekund i porównaj ich numeryczne wartości epoki w systemach, na których działają nadawca i odbiorca.
Struktura stat w systemie Linux obsługuje znaczniki czasu z dokładnością do nanosekund, dlatego dwa pliki wyświetlane z tą samą sekundą mogą nadal mieć różne wartości.
Przeglądarka pokazująca tylko minuty lub sekundy nie może potwierdzić zgodności bazowych czasów modyfikacji. Zapisz surowe wartości, zanim ponownie zmodyfikujesz pliki.
Sprawdź precyzję znaczników czasu i okno modyfikacji
Zidentyfikuj każdy system plików na ścieżce, w tym FAT, exFAT, NTFS, SMB, NFS, rozpakowywanie archiwów oraz wymienne woluminy tymczasowe.
Instrukcja Rsync dla Debiana opisuje działanie modify-window, w tym tolerancję dla systemów plików, które nie mogą przechowywać identycznej precyzji znaczników czasu.
Używaj niezerowego okna dopiero po zmierzeniu różnicy. Zbyt szerokie okno może ukryć rzeczywiście zmieniony plik o tym samym rozmiarze.
Przeprowadź audyt flag zastępujących standardowe szybkie sprawdzanie
Sprawdź kompletne zaplanowane polecenie oraz wszystkie skrypty opakowujące, interfejs NAS, zmienne środowiskowe, pliki dołączane lub ustawienia wstępne, które dodają opcje.
Dokumentacja Rsync dla Ubuntu stwierdza, że ignore-times wymusza aktualizacje, tryb sum kontrolnych zastępuje test czasu, a size-only ignoruje czas modyfikacji.
Usuń tylko flagę, której działanie zostało potwierdzone. Tryb sum kontrolnych może powodować intensywne odczyty, nawet gdy przez sieć przesyłana jest niewielka ilość danych.
Sprawdź, czy SMB lub Windows ponownie zapisuje czas docelowy
Oblicz sumę kontrolną i zapisz znacznik czasu miejsca docelowego bezpośrednio po transferze, po zamknięciu sesji SMB oraz po ponownym otwarciu jej z innego klienta.
Firma Microsoft dokumentuje, że aplikacje mogą ustawiać i pobierać znaczniki czasu plików, a systemy plików i aplikacje mogą aktualizować poszczególne pola według różnych harmonogramów.
Jeśli czas docelowy zmienia się dopiero po użyciu pliku przez indeksator, aplikację multimedialną, klienta chmurowego lub proces SMB, popraw działanie tego procesu zamiast konfiguracji Rsync.
Oddziel czas modyfikacji od pozostałych metadanych
Porównaj czas modyfikacji, czas zmiany stanu, uprawnienia, właściciela, listy ACL, atrybuty rozszerzone, dowiązania twarde i dowiązania symboliczne.
Narzędzie stat w systemie NetBSD udostępnia surowe pola stanu pliku, pomagając odróżnić czas modyfikacji zawartości od innych zmian metadanych.
Opcje dotyczące archiwów, list ACL, atrybutów rozszerzonych, właściciela lub grupy mogą wywoływać operacje na metadanych. Odczytaj kod wyszczególnionych zmian, zamiast uznawać każdą wymienioną ścieżkę za transfer całej zawartości.
Wykonaj test na jednym pliku i napraw najmniejszą potwierdzoną różnicę
Skopiuj jeden zamknięty plik testowy, zachowaj zamierzone metadane, ponownie uruchom identyczne polecenie i porównaj wyszczególnione dane wyjściowe, liczbę przesłanych bajtów oraz surowe znaczniki czasu.
Artykuł ZimaSpace o nieoczekiwanie dużych kopiach przyrostowych omawia szersze przyczyny związane z łańcuchem kopii zapasowych; ten artykuł koncentruje się na regułach wyboru plików przez Rsync.
Problem jest rozwiązany, gdy ponowne uruchomienie bez zmian pomija plik testowy lub wykonuje wyłącznie aktualizację metadanych, którą celowo skonfigurowano.
Najczęściej zadawane pytania
Dlaczego daty wyglądają identycznie w przeglądarce plików?
Przeglądarka może zaokrąglać czas do sekund lub minut i wyświetlać czas lokalny, podczas gdy Rsync otrzymuje dokładniejszy znacznik czasu modyfikacji.
Czy tryb sum kontrolnych zatrzyma niepotrzebne kopiowanie?
Może uniknąć transferu, gdy zawartość jest zgodna mimo różnych czasów, ale musi odczytać i obliczyć sumy kontrolne plików o tym samym rozmiarze po obu stronach.
Czy strefy czasowe mogą powodować powtarzające się transfery Rsync?
Samo wyświetlanie strefy czasowej nie powinno zmieniać numerycznych znaczników czasu, ale mogą to robić aplikacje lub systemy plików, które je konwertują albo zaokrąglają.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

