Próbuję napisać skrypt w języku Python, który monitoruje transfer rsync i zapewnia (przybliżony) szacunek procentowego postępu. Dla mojej pierwszej próbie, spojrzałem na komendzie rsync --progress
i zobaczył, że wypisuje komunikaty takie jak:Monitorowanie Rsync Progress
1614 100% 1.54MB/s 0:00:00 (xfer#5, to-check=4/10)
pisałem parser dla takich wiadomości i używane części do-check, aby produkować procentowy postęp, tutaj, to byłoby 60% kompletne.
Jednak istnieją dwa błędy w tym:
- W dużych transferów, w „licznik” frakcji do check-nie wydaje się monotonicznie maleje, więc kompletność odsetek może skoczyć do tyłu.
- Taka wiadomość nie jest drukowana dla wszystkich plików, co oznacza, że postęp może przeskoczyć do przodu.
Sprawdziłem inne alternatywy wiadomości do wykorzystania, ale nie udało mi się znaleźć niczego. Czy ktoś ma jakieś pomysły?
Z góry dziękuję!
Wartości przeskakują, ponieważ rsync rozpoczyna przesyłanie danych, podczas gdy wciąż ocenia pracę, którą ma wykonać. Jest to równie dobry środek, jak każdy, który dostaniesz. – hop
Czy nie ma sposobu, aby dokonać wstępnej oceny pracy, którą musi wykonać? --dry-run --stats wydaje się być rzeczą, która to robi, niestety wartości, które produkuje dla danych do przesłania, nie są poprawne. – paulmdavies
dlaczego zwalniałbyś go, żeby pokazywał nieprzydatne informacje? – hop