Wprowadzam niewielką zmianę w bardzo dużym pliku obrazu pliku (różnica zaledwie kilku pikseli), którego przesłanie przez sieć zajmuje dużo czasu.
Czy istnieje sposób, aby rsync rozpoznał różnicę w pliku i wysłał tylko mały plik różnicowy przez sieć?
rsync
zachowuje się domyślnie w ten sposób. Tak długo, jak niewielka zmiana jest niewielką zmianą w pliku, a plik już istnieje po obu stronach łącza w prawie identycznych wersjach, przesyłane dane powinny być znacznie mniejsze niż całkowity rozmiar pliku. Z pierwszego akapitu na stronie podręcznika: „Słynie z algorytmu transferu delta, który zmniejsza ilość danych przesyłanych przez sieć, wysyłając tylko różnice między plikami źródłowymi a istniejącymi plikami w miejscu docelowym”.Odpowiedzi:
rsync
Algorytm transferu delta robi to domyślnie. Cytując stronę rsync :Jeśli chcesz go wyłączyć, będziesz musiał użyć opcji
-W
lub--whole-file
.Jeśli naprawdę wiesz, jak bardzo zmienił się Twój plik, możesz nawet zoptymalizować zachowanie transferu delta, dostosowując rozmiar bloku delta:
Jeśli chcesz uzyskać więcej informacji o samym algorytmie, możesz go znaleźć tutaj: Algorytm Rsync
źródło