Zwykle rsync
pomija pliki, gdy pliki mają identyczne rozmiary i czasy po stronie źródłowej i docelowej. Jest to heurystyka, która zazwyczaj jest dobrym pomysłem, ponieważ zapobiega rsync
konieczności sprawdzania zawartości plików, które najprawdopodobniej są identyczne po stronie źródłowej i docelowej.
--ignore-times
każe rsync
wyłączyć heurystykę czasów i rozmiarów plików, a tym samym bezwarunkowo przesłać WSZYSTKIE pliki ze źródła do miejsca docelowego. rsync
przejdzie następnie do odczytu każdego pliku po stronie źródłowej, ponieważ będzie musiał albo użyć algorytmu transferu delta, albo po prostu wysłać każdy plik w całości, w zależności od tego, czy --whole-file
podano opcję.
--checksum
modyfikuje także heurystykę czasów i rozmiarów plików, ale tutaj ignoruje czasy i sprawdza tylko rozmiary. Pliki po stronie źródłowej i docelowej, które różnią się rozmiarem, są przesyłane, ponieważ są oczywiście różne. Pliki o tym samym rozmiarze są rsync
sumowane (z MD5 w wersji 3.0.0+ lub z MD4 we wcześniejszych wersjach), a pliki, które mają różne sumy, są również przesyłane.
W przypadkach, gdy strony źródłowa i docelowa są w większości takie same, --checksum
spowoduje to , że większość plików zostanie sprawdzona po obu stronach. Może to zająć dużo czasu, ale wynik jest taki, że najdrobniejsze minimum danych zostanie faktycznie przesłane przewodem, szczególnie jeśli zostanie użyty algorytm transferu delta. Oczywiście jest to tylko zwycięstwo, jeśli masz bardzo wolne sieci i / lub bardzo szybki procesor.
--ignore-times
z drugiej strony wyśle więcej danych przez sieć i spowoduje odczyt wszystkich plików źródłowych, ale przynajmniej nie nałoży dodatkowego obciążenia związanego z obliczeniem wielu silnie kryptograficznie silnych sum na procesorach źródłowych i docelowych. Spodziewałbym się, że ta opcja będzie działać lepiej niż --checksum
wtedy, gdy twoje sieci są szybkie i / lub procesor stosunkowo wolny.
Wydaje mi się, że kiedykolwiek używałbym --checksum
lub --ignore-times
gdybym przesyłał pliki do miejsca docelowego, w którym podejrzewano, że zawartość niektórych plików była uszkodzona, ale których czasy modyfikacji nie uległy zmianie. Naprawdę nie mogę wymyślić żadnego innego dobrego powodu, aby użyć którejkolwiek z tych opcji, chociaż prawdopodobnie istnieją inne przypadki użycia.
--checksum
przydatne wraz z--itemize-changes
weryfikacją kopii zapasowych. Co jakiś czas moje skrypty kopii zapasowej uruchamiają pełne porównanie w ten sposób po zakończeniu bieżących codziennych / tygodniowych aktualizacji. Dostaję wiadomość e-mail oznaczoną jako pilna, jeśli--itemize-changes
wydarzy się coś nieoczekiwanego, więc wiem, że istnieje potencjalny problem, który powinienem sprawdzić.