
Я запускаю эту команду, чтобы проверить идентичность двух папок и записать все различия в файл журнала:
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 пока не знает, сколько будет файлов или насколько они велики. Что касается того, можете ли вы получить список имен файлов по мере вычисления их контрольных сумм, то, насколько я понял, это не так. (Но может быть хитрый трюк, и трудно доказать отрицательное!)