Понимание вывода --info = progress2 из rsync

72

Если я бегу rsyncс --info=progress2, я получаю вывод, как

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

Но что означают отдельные числа? Я не нашел подходящей записи в справочной странице.

  • Кажется, первое число - это количество данных, которые были обработаны (фактические скопированные байты, а также пропущенные байты, поскольку они уже существовали в целевом местоположении), верно? Кажется, это не количество передаваемых данных, потому что оно увеличивается быстрее, чем мое интернет-соединение ...
  • Относится ли процент к объему данных или количеству копируемых файлов? Учитывает ли он исключенные файлы и файлы, которые уже обновлены в целевом местоположении?
  • Время в третьей позиции сначала казалось оценкой времени для завершения, но когда я попробовал это, оно прыгнуло между несколькими часами и несколькими секундами. К чему это относится и как рассчитывается?
  • Что означают последние два числа?
муфель-
источник
1
Вы пробовали manстраницу ( ВАРИАНТЫ > --progress)?
don_crissti
1
см. unix.stackexchange.com/questions/231647/… где это решено.
Шириш

Ответы:

90
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 изменится на to-chkуказывает на то, что сканирование с добавочной рекурсией завершило проверку (операция обнаружения файла). Тем не менее, поскольку файлы будут проверяться / проверяться до тех пор, пока все они не будут выполнены, количество файлов, которые еще предстоит проверить / проверить (слева от косой черты), будет уменьшаться до тех пор, пока такое число не станет равным нулю (что указывает на завершение процесса проверки файлов). ,

Позвольте 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 был для каждого файла, а не глобальным, и тогда я был «визуально убежден», что это было -файл ЭТА. Я использовал XUbuntu 14.04 (не помню, какая это была версия rsync). В любом случае, я установил XUbuntu 16.04 (он поставляется с rsync 3.1.1-3ubuntu1) пару месяцев назад, и я могу (визуально) подтвердить, что rsync -a --info=progress2 /src /destфактически дает мне общее истекшее время, чередующееся с глобальным ETA, а не с ETA для каждого файла. Это странно и ново для меня, но ты прав.
Юрий Сукупира
4
@wingedsubmariner Во время копирования файла, скажем, file1rsync показывает (текущее) глобальное ETA для всего процесса копирования. Затем, когда он заканчивает копирование file1, rsync показывает вам (текущее) глобальное истекшее время, а затем начинает копировать следующий файл - скажем, file2-, таким образом, снова показывая вам (текущий) глобальный ETA, пока процесс копирования не file2завершится, а затем rsync показывает новое (увеличенное) общее истекшее время. Вот почему вы видите эти «скачки»: это потому, что вы видите уменьшение глобального (общего) ETA, чередующегося с увеличением глобального (общего) истекшего времени.
Юрий Сукупира
2
@ijoseph Да, на странице руководства только упоминается поведение ETA. Это одна из вероятных причин, почему так много людей испытывают замешательство в отношении поведения пользовательского интерфейса во время процесса реконструкции. Мне самому пришлось некоторое время уделять пристальное внимание такому процессу, пока я наконец не смог раскрыть его «тайны». :)
Юрий Сукупира