Розуміння результату --info = progress2 від rsync


71

Якщо я біжу rsyncз --info=progress2, я отримую вихід , як

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

Але що означають одиничні числа? Я не знайшов відповідного запису на сторінці man.

  • Перше число, як видається, - це кількість оброблених даних (фактичні скопійовані байти, а також байти пропущені, оскільки вони вже існували в цільовому місці), правда? Здається, це не кількість переданих даних, тому що вона збільшується швидше, ніж мій Інтернет-з'єднання ...
  • Чи відноситься відсоток до кількості даних або кількості файлів, які потрібно скопіювати? Чи враховані вони виключені файли та файли, які вже оновлені в цільовому місці?
  • Час на третій позиції спочатку здавався оцінкою часу для завершення, але коли я спробував це, він стрибнув між кількома годинами та кількома секундами. Що це стосується, і як він обчислюється?
  • Що означають останні два числа?

1
Ви спробували manсторінку ( ВАРІАНТИ > --progress)?
don_crissti

1
див. unix.stackexchange.com/questions/231647/…, де це вирішено.
shirish

Відповіді:


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

Значить, що:

  • Наразі приймач / пункт призначення реконструював 105,45 мегабайт (або 13% ) з приблизно 811,15 мегабайт (100%) файлів відправника / джерела.
  • Ці файли реконструюються зі швидкістю 602,83 кілобайт в секунду, і ця операція передачі даних займала 2 хвилини та 50 секунд (минув час).

Також xfr # 495 означає, що зараз передається 495-й файл, тоді як ir-chk = 1020/3825 вказує на те, що із загальної (поки що) 3825 файлів рекурсивно відскановано (виявлено), поки що 1020 з них все ще бути перевіреним / перевіреним.

Це означає, що якщо сканування виявить, наприклад, більше 100 файлів, які потрібно перевірити, обидві сторони збільшуватимуться на 100 (тоді він буде читати ir-chk = 1120/3925 ). Після сканування всіх файлів (виявлених при поступовому скануванні рекурсії) число в правій частині косої риски залишатиметься однаковим до кінця всього процесу, тоді як той, що знаходиться в лівій частині косої риски, почне зменшуватися. оскільки все більше і більше файлів перевіряються (перевіряються). Також через закінчення рекурсії ir-chk зміниться на -kk, що вказує на те, що інкрементне рекурсійне сканування закінчилося з проведенням перевірки (операція виявлення файлів). Але оскільки файли будуть перевірятись / перевірятись до тих пір, поки всі вони не з’являться, кількість файлів, які ще перевіряються / перевіряються (ліва частина косої риски), зменшуватиметься, поки таке число не стане нульовим (що вказує на закінчення процесу перевірки файлів) .

Нехай N - фактична загальна кількість файлів, які потрібно перевірити / перевірити, коли весь процес закінчиться, ви побачите:

to-chk=0/N

... значить, із загальної кількості N файлів, виявлених шляхом поступового сканування рекурсії , не залишилося жодного файлу для перевірки / перевірки.

Про ir-chk (зі сторінки посібника rsync):

Під час інкрементального рекурсійного сканування rsync не дізнається загальну кількість файлів у списку файлів, поки не досягне кінців сканування, але оскільки він починає передавати файли під час сканування, він відображатиме рядок з текстом " ir-chk "(для інкрементальної перевірки рекурсії) замість" to-chk "до тих пір, поки він не знає повного розміру списку, після чого перейде до використання" to-chk ". Таким чином, перегляд "ir-chk" дає вам знати, що загальна кількість файлів у списку файлів все ще збільшиться (і щоразу, кількість файлів, що залишилися для перевірки, збільшуватиметься на кількість файлів, доданих до список).


4
Невелика корекція: 2:50 - це не ETA - це час, що минув до цього часу.
підкрадається

4
@YuriSucupira Моя відповідь на цей коментар. Я схильний завжди використовувати --no-inc-recursive, але це не те, про що я говорю. Час ETA в progress2основі ґрунтується на загальних (відомих) даних та минулому часу; це не за файлом (але блимає значення одного файлу, який минув час для галочки після завершення одного файлу). В один момент із цим було виявлено помилку, яка зробила б це менш зрозумілим, хоча я не впевнений, у якій версії йдеться
Izkata

2
@Izkata Я пригадую тестування rsync до того часу (17 липня 2016 р.), Перш ніж робити тут будь-яку заяву, просто щоб переконатися, що ETA був у файлі замість глобального, і я тоді "візуально переконався", що це -файл ETA. Я використовував XUbuntu 14.04 (не пам'ятаю, для якої версії rsync це була). У всякому разі, я встановив XUbuntu 16.04 (він поставляється з rsync 3.1.1-3ubuntu1) пару місяців тому, і я можу (візуально) підтвердити, що rsync -a --info=progress2 /src /destнасправді дає мені загальний минулий час, що чергується з глобальним ETA, замість ETA на файл. Це дивно і нове для мене, але ти маєш рацію.
Юрій Сукупіра

4
@wingedsubmariner Під час копіювання файлу - скажімо, file1-, rsync показує вам (поточне) глобальне еталонне значення для всього процесу копіювання. Потім, коли він закінчує копіювання file1, rsync показує вам (поточний) глобальний минулий час, а потім починає копіювати наступний файл - скажімо, file2-, тим самим показуючи вам (поточну) глобальну ETA знову, поки процес копіювання не file2закінчиться, а потім rsync показує новий (збільшений) загальний пройдений час. Ось чому ви бачите ці "стрибки": це тому, що ви бачите зменшується глобальний (загальний) ЗНО, що чергується зі збільшенням глобального (загального) минулого часу.
Юрій Сукупіра

2
@ijoseph Yup, сторінка чоловіка лише згадує про поведінку ETA. Це одна з ймовірних причин, чому стільки людей не розгублено ставляться до поведінки інтерфейсу користувача у процесі реконструкції. Мені самому довелося деякий час приділяти пильну увагу такому процесу, поки я нарешті не змогла розкрити його «загадки». :)
Юрій Сукупіра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.