Давайте посмотрим, как работает rsync, и лучше поймем загадочные строки результатов:
1 - Огромным преимуществом rsync является то, что после прерывания в следующий раз он продолжает работать плавно.
При следующем вызове rsync файлы, которые уже были переданы, не будут перенесены, если они не были изменены за это время. Но он снова начнет проверять все файлы с самого начала, так как не знает, что это было прервано.
2 - Каждый символ представляет собой код, который можно перевести, если вы прочитаете раздел для -i, --itemize-changes
в man rsync
Расшифровка вашего примера файла журнала из вопроса:
>f.st......
> - the item is received
f - it is a regular file
s - the file size is different
t - the time stamp is different
.d..t......
. - the item is not being updated (though it might have attributes
that are being modified)
d - it is a directory
t - the time stamp is different
>f+++++++++
> - the item is received
f - a regular file
+++++++++ - this is a newly created item
Соответствующая часть справочной страницы rsync:
-i, --itemize-changes
Запрашивает простой подробный список изменений, которые вносятся в каждый файл, включая изменения атрибутов. Это в точности то же самое, что и указание --out-format = '% i% n% L'. Если вы повторите эту опцию, неизмененные файлы также будут выводиться, но только если принимающий rsync имеет версию не ниже 2.6.7 (вы можете использовать -vv со старыми версиями rsync, но это также включает вывод других подробных сообщений- мудрецы).
Экземпляр «% i» имеет загадочный вывод, состоящий из 11 букв. Общий формат похож на строку YXcstpoguax, где Y заменяется типом выполняемого обновления, X заменяется типом файла, а другие буквы представляют атрибуты, которые могут выводиться, если они изменяются.
Типы обновления, которые заменяют Y, следующие:
<
означает, что файл передается на удаленный хост (отправляется).
>
означает, что файл передается на локальный хост (получен).
c
означает, что для элемента происходит локальное изменение / создание (например, создание каталога или изменение символической ссылки и т. Д.).
h
означает, что элемент является жесткой ссылкой на другой элемент (требуется --hard-links).
.
означает, что элемент не обновляется (хотя у него могут быть изменяемые атрибуты).
*
означает, что остальная часть области вывода с разбивкой по элементам содержит сообщение (например, «удаление»).
Типы файлов, которые заменяют X: f
для файла, d
для каталога, L
для символической ссылки, D
для устройства и S
для специального файла (например, именованных сокетов и FIFO).
Другие буквы в приведенной выше строке - это фактические буквы, которые будут выводиться, если связанный атрибут для элемента обновляется, или "." без изменений. Три исключения из этого: (1) вновь созданный элемент заменяет каждую букву на «+», (2) идентичный элемент заменяет точки пробелами и (3) неизвестный атрибут заменяет каждую букву на «?» (это может произойти при разговоре со старым rsync).
Атрибут, связанный с каждой буквой, выглядит следующим образом:
c
означает, что либо у обычного файла другая контрольная сумма (требуется --checksum), либо что символическая ссылка, устройство или специальный файл имеют измененное значение. Обратите внимание, что если вы отправляете файлы в rsync до версии 3.0.1, этот флаг изменения будет присутствовать только для обычных файлов с разной контрольной суммой.
s
означает, что размер обычного файла отличается и будет обновляться при передаче файла.
t
означает, что время модификации другое и обновляется до значения отправителя (требуется --times). Альтернативное значение T означает, что время модификации будет установлено равным времени передачи, что происходит, когда файл / символическая ссылка / устройство обновляется без --times и когда символическая ссылка изменяется, и получатель не может установить ее время. (Примечание: при использовании клиента rsync 3.0.0 вы можете увидеть флаг s в сочетании с t вместо правильного флага T для этого сбоя установки времени.)
p
означает, что разрешения разные и обновляются до значения отправителя (требуется --perms).
o
означает, что владелец другой и обновляется до значения отправителя (требуются привилегии --владелец и суперпользователь).
g
означает, что группа отличается и обновляется до значения отправителя (требуется --group и права доступа для установки группы).
- Слот
u
зарезервирован для использования в будущем.
a
означает, что информация ACL изменилась.
x
означает, что информация расширенного атрибута изменилась.
Возможен еще один вывод: при удалении файлов «% i» будет выводить строку «* deleting» для каждого удаляемого элемента (при условии, что вы разговариваете с достаточно свежим rsync, чтобы он регистрировал удаления, а не выводил их как подробное сообщение).
person
mit
schedule
20.08.2012