Zrozumienie wyniku działania --info = progress2 z rsync

71

Jeśli działam rsyncz --info=progress2, otrzymuję wyjście jak

105.45M  13%  602.83kB/s    0:02:50 (xfr#495, ir-chk=1020/3825)

Ale co oznaczają pojedyncze liczby? Nie znalazłem pasującego wpisu na stronie man.

  • Pierwsza liczba wydaje się być ilością danych, które zostały przetworzone (rzeczywiste skopiowane bajty, a także bajty pominięte, ponieważ już istniały w docelowej lokalizacji), prawda? Wydaje się, że nie jest to liczba przesłanych danych, ponieważ rośnie szybciej niż moje połączenie internetowe ...
  • Czy procent odnosi się do ilości danych lub liczby plików do skopiowania? Czy uwzględnia wykluczone pliki i pliki, które są już aktualne w lokalizacji docelowej?
  • Czas na trzeciej pozycji początkowo wydawał się szacunkowym czasem ukończenia, ale kiedy spróbowałem, skoczył od kilku godzin do kilku sekund. Do czego to się odnosi i jak jest obliczane?
  • Co oznaczają dwie ostatnie cyfry?
tłumić
źródło
1
Czy próbowałeś już manstrony ( OPCJE > --progress)?
don_crissti,
1
zobacz unix.stackexchange.com/questions/231647/... gdzie jest rozwiązany.
shirish

Odpowiedzi:

89
105.45M 13% 602.83kB/s 0:02:50 (xfr#495, ir-chk=1020/3825)

Oznacza, że:

  • Do tej pory odbiorca / odbiorca zrekonstruował 105,45 megabajtów (lub 13% ) z około 811,15 megabajtów (100%) plików nadawcy / źródła.
  • Pliki te są odtwarzane z szybkością 602,83 kilobajtów na sekundę, a jak dotąd ta operacja przesyłania danych trwała 2 minuty i 50 sekund (czas, który upłynął).

Ponadto xfr # 495 oznacza, że ​​obecnie przesyłany jest 495 plik, natomiast ir-chk = 1020/3825 wskazuje, że spośród 3825 plików (dotychczas) rekurencyjnie skanowanych (wykrywanych), jak dotąd 1020 z nich jest nadal do sprawdzenia / weryfikacji.

Oznacza to, że jeśli skanowanie wykryje np. Więcej 100 plików do sprawdzenia, obie strony zwiększą się o 100 (wówczas odczytane zostanie ir-chk = 1120/3925 ). Po zeskanowaniu wszystkich plików (wykrytych podczas przyrostowego skanowania rekurencyjnego) liczba po prawej stronie ukośnika pozostanie taka sama do końca całego procesu, podczas gdy liczba po lewej stronie ukośnika zacznie się zmniejszać w miarę jak coraz więcej plików jest sprawdzanych (weryfikowanych). Ponadto, z powodu zakończenia rekurencji, ir-chk zmieni się na to-chk, wskazując, że przyrostowe skanowanie rekurencyjne zakończyło sprawdzanie (operacja wykrywania pliku). Mimo to, ponieważ pliki będą sprawdzane / weryfikowane, dopóki nie zostaną wszystkie, liczba plików do sprawdzenia / weryfikacji (lewa strona ukośnika) będzie się zmniejszać, aż liczba ta wyniesie zero (co oznacza koniec procesu weryfikacji pliku) .

Niech N będzie rzeczywistą całkowitą liczbą plików do sprawdzenia / weryfikacji, gdy zakończy się cały proces, zobaczysz:

to-chk=0/N

... co oznacza, że ​​nie ma już żadnego pliku do sprawdzenia / weryfikacji, spośród wszystkich N plików wykrytych podczas przyrostowego skanowania rekurencyjnego.

O ir-chk (ze strony podręcznika rsync):

Podczas przyrostowego skanowania rekurencyjnego rsync nie pozna całkowitej liczby plików na liście plików, dopóki nie osiągnie końca skanowania, ale ponieważ zaczyna przesyłać pliki podczas skanowania, wyświetli wiersz z tekstem „ ir-chk ”(dla przyrostowego sprawdzania rekurencji) zamiast„ to-chk ”aż do momentu, w którym zna pełny rozmiar listy, w którym to momencie przełączy się na użycie„ to-chk ”. W związku z tym widok „ir-chk” informuje, że całkowita liczba plików na liście plików nadal będzie rosła (i za każdym razem liczba pozostających do sprawdzenia plików wzrośnie o liczbę plików dodanych do Lista).

Yuri Sucupira
źródło
4
Drobna korekta: 2:50 nie jest ETA - to jak dotąd czas, który upłynął.
podkradają się
4
@YuriSucupira Moja odpowiedź dotyczy tego komentarza. Zwykle zawsze używam --no-inc-recursive, ale nie o tym mówię. Czas ETA progress2zależy od całkowitych (znanych) danych i upływu czasu; nie jest na plik (ale miga wartość upływu czasu dla pojedynczego pliku dla tik po zakończeniu pojedynczego pliku). W pewnym momencie wystąpił błąd , który uczyniłby to mniej zrozumiałym, chociaż nie jestem pewien, w jakiej wersji jest
Izkata,
2
@Izkata Pamiętam, że do tego czasu przetestowałem rsync (17 lipca 2016 r.), Zanim wydałem jakiekolwiek oświadczenie, aby upewnić się, że ETA dotyczyło pliku zamiast globalnego, i wtedy byłem „wizualnie przekonany”, że plik ETA. Korzystałem z XUbuntu 14.04 (nie pamiętam, która to była wersja rsync). W każdym razie zainstalowałem XUbuntu 16.04 (jest dostarczany z rsync 3.1.1-3ubuntu1) kilka miesięcy temu i mogę (wizualnie) potwierdzić, że rsync -a --info=progress2 /src /destw rzeczywistości daje mi całkowity czas na przemian z globalnym ETA, zamiast ETA na plik. To dla mnie dziwne i nowe, ale masz rację.
Yuri Sucupira
4
@wingedsubmariner Podczas kopiowania pliku - powiedzmy file1- rsync pokazuje (bieżącą) globalną ETA dla całego procesu kopiowania. Następnie, po zakończeniu kopiowania file1, rsync pokazuje (bieżący) globalny czas, który upłynął, a następnie rozpoczyna kopiowanie następnego pliku - powiedzmy file2-, pokazując w ten sposób (bieżący) globalny ETA, aż do zakończenia procesu kopiowania, file2a następnie rsync pokazuje nowy (zwiększony) całkowity czas, który upłynął. Właśnie dlatego widzisz te „skoki”: to dlatego, że widzisz malejącą globalną (całkowitą) ETA na przemian ze wzrostem globalnego (całkowitego) upływającego czasu.
Yuri Sucupira
2
@ijoseph Tak, strona podręcznika wspomina tylko zachowanie ETA. To jeden z prawdopodobnych powodów, dla których tak wiele osób czuje się zdezorientowanych zachowaniem interfejsu podczas procesu odbudowy. Sam musiałem przez jakiś czas uważnie obserwować taki proces, aż wreszcie mogłem odsłonić jego „tajemnice”. :)
Yuri Sucupira