7

Я запускаю эту команду, чтобы проверить идентичность двух папок и поместить все различия в файл журнала:

rsync -av --delete --checksum --dry-run --stats --itemize-changes --out-format='%t %i %f ' SOURCE DESTINATION | tee log.txt

Если между сравниваемыми файлами нет различий, rsync не сообщит ничего, кроме этого, до конца задания:

отправка списка добавочных файлов

Было бы неплохо получить некоторую информацию о том, где находится rsync. Особенно если сравнивать много файлов. Можно ли заставить rsync печатать все чеки в терминал и оставлять только различия в файле журнала?

PS: --info=progress2 не помогло.

1 ответ1

0

[Я вижу, что вам нужен список файлов, для которых rsync вычисляет контрольную сумму, так как эти контрольные суммы вычисляются. Насколько я понимаю, это не похоже на то, что доступно. Ниже я приведу более общую информацию о том, как работает отчет rsync, и о том, как он сообщает о прогрессе, насколько я понимаю.]

Если есть файлы для передачи, то переключатель --info=progress1 («прогресс для каждого файла») даст вам некоторую информацию о прогрессе. По мере передачи каждого файла он будет выглядеть примерно так:

MD5SUMS.gnome
        141   0%    0.00kB/s    0:00:00 (xfr#1, to-chk=11/13)
ParrotSecurity.lnk
        179   0%   37.11kB/s    0:00:00 (xfr#2, to-chk=10/13)
SHA256SUMS.mate
        486   0%  336.91kB/s    0:00:00 (xfr#3, to-chk=9/13) 
SHA256SUMS.mate.gpg
      1,419   0%    1.22MB/s    0:00:00 (xfr#4, to-chk=8/13)
SHA256SUMS.ubuntu
      1,994   0%    1.77MB/s    0:00:00 (xfr#5, to-chk=7/13)
SHA256SUMS.ubuntu.gpg
      2,927   0%    2.66MB/s    0:00:00 (xfr#6, to-chk=6/13)

xfer сообщает, какой файл передается (xfer#6 - 6 -й), а to-chk (скажем, to-chk=6/13 6/13) - 6-й из 13-ти.

Обратите внимание, что вы не получите это в --dry-run как нечего передавать. (Вы также можете получить этот вывод с помощью --progress , хотя это не ясно со страницы руководства, и сейчас я не буду проверять.)

Если вы посмотрите на --recursive на странице руководства, то увидите, что начиная с версии 3.0.0, rsync -r проверит несколько каталогов перед началом работы, а затем продолжит проверять их во время передачи. Это "инкрементное рекурсивное" сканирование, и в этом случае вы увидите ir-chk а не to-chk . И "знаменатель" в ir-chk может увеличиваться, так как он постепенно сканирует больше файлов.

Если вы не использовали --recursive , контрольная сумма выполняется сначала для определения всех файлов, которые должны быть переданы, а затем они передаются по одному. Это не кажется , что вы можете получить любой вид доклада о ходе работы на начальном этапе , в которых в настоящее время вычисленной контрольной суммы, так как Rsync еще не знает , сколько файлов будет или насколько они являются. Относительно того, можете ли вы получить список имен файлов по мере того, как их контрольные суммы вычисляются, из моего чтения это не так. (Но может быть и хитрый трюк, а отрицательный трудно доказать!)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .