Заставить rsync показывать прогресс при сравнении контрольных сумм, даже если никаких различий не обнаружено

Заставить rsync показывать прогресс при сравнении контрольных сумм, даже если никаких различий не обнаружено

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

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

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

отправка инкрементного списка файлов

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

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

решение1

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

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

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.

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

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

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

Связанный контент