1

Я использую rsync, чтобы сделать резервную копию. Это моя командная строка:

sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST

Это работает по большей части. Однако сегодня я столкнулся со сценарием, в котором я просто изменил атрибуты файла, чтобы сделать его исполняемым. Из любопытства я запустил rsync, но он не показал, что этот файл скопирован в место назначения.

Содержимое файла точно такое же, и это вывод статистики:

  File: `Projects/simpleFlash.py'
  Size: 706             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 56961       Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 1000/      pi)   Gid: ( 1000/      pi)
Access: 2015-03-26 17:13:29.970428613 -0400
Modify: 2015-02-17 00:16:44.558033934 -0500
Change: 2015-05-19 13:53:28.401164123 -0400
 Birth: -

Mtimes одинаковы, но ctime отличается. Как заставить rsync посмотреть изменения атрибутов файла для файлов с одинаковым mtime?

specs:
rsync 3.0.9
FS: ext4
linux kernel: 3.18.11+

1 ответ1

0

Как указано в справочной странице rsync(1) :

Rsync находит файлы, которые необходимо передать, используя алгоритм "быстрой проверки" (по умолчанию), который ищет файлы, которые изменились в размере или в момент последнего изменения. Любые изменения в других сохраненных атрибутах (в соответствии с параметрами) вносятся в целевой файл непосредственно, когда быстрая проверка показывает, что данные файла не нуждаются в обновлении.

Это означает, что если вы скажете rsync передать атрибуты, они будут обновлены. Вы сказали, что отсутствующим атрибутом были права доступа, поэтому добавьте -p или --perms в командную строку, и все готово .

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