Я пытаюсь сделать резервную копию неисправного жесткого диска, и 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
для использования сжатия