Сохранение даты изменения в каталогах/папках с помощью rsync

Сохранение даты изменения в каталогах/папках с помощью rsync

Я пытаюсь сделать резервную копию неисправного жесткого диска, и rsync был бы идеальным из-за его функций, таких как индикатор хода выполнения и возможность остановки и возобновления. Единственная проблема, с которой я сталкиваюсь, заключается в том, что хотя атрибут даты изменения файла сохраняется, каталоги получают новый атрибут даты. Это вызывает проблемы, так как я сортирую много файлов по дате, чтобы знать, что было добавлено позже. Возможно ли сохранить атрибут даты изменения каталога с помощью rsync:

sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/

-t (включен в -a) опция сохраняет атрибуты файла, но не упоминает каталоги. Есть ли какие-либо особые требования к владельцу/разрешениям на раздел /mnt/new для успешного сохранения определенных атрибутов?

решение1

Время последнего изменения каталогов сохраняется -a, но вы можете увидеть это только после завершения rsync. Он не пытается установить время в каталогах, которые постоянно обновляются новыми файлами.

Вы можете проверить это сами. Создайте каталог и установите в нем дату на вчерашний день, затем скопируйте ее с помощью rsync:

$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2  40 Nov  4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2  40 Nov  3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

В каталоге d2/d1 стоит вчерашняя дата. Мы можем переопределить ее и посмотреть, исправит ли rsync ситуацию:

$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

rsync -iпоказывает, что временная метка на d2/d1 неверна, и исправляет ее.

решение2

Я в итоге написал об этой проблеме, на случай, если это кому-то пригодится. Практически каждый бит метаданных можно сохранить с помощью Rsync, как объясняется в посте.

Замените накопители на Rsync в Arch Linux

Вот фрагмент для синхронизации всего:

sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/

решение3

rsync -avzделает для меня все
- vдля подробного режима
- aдля режима архивации (аналогично -rlptgoD)
- zдля использования сжатия

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