Как сохранить время изменения файла при копировании на NAS?


8

Я недавно установил Synology DiskStation в своей сети. Я подключил его с компьютера Ubuntu 12.04.1 с помощью кнопки «Обзор сети» в Nautilus 3.4.2. Он отображается как afp: //randall@DiskStation.local/photo/ в Наутилус.

Все идет нормально. Затем я загрузил на него множество фотографий, все с изменениями, охватывающими несколько месяцев. Когда я посмотрел каталог фотографий на DiskStation, все они имели время модификации на момент копирования, а не время модификации на исходном компьютере. Так много для сортировки их по дате на DiskStation.

Есть ли способ повторно скопировать файлы, но сохранить дату их изменения? Возможно, я смонтировал DiskStation неправильно. Возможно, Наутилус был неправильным инструментом для использования. Какие-либо предложения?

Кстати, я перенес гигабайты фотографий на другой NAS (Plextor PX-EH) по SMB / CIFS из Ubuntu 10.04, 10.10, 11.04 и 11.10 с полностью сохраненным временем модификации. Проблема должна быть с Synology или некоторым программным обеспечением Ubuntu 12.04.


Поддерживает ли этот NAS доступ по SSH? Если да, вы можете использовать rsyncили один из его интерфейсов GUI для синхронизации фотографий. Кроме того , он должен поддерживать SMB / CIFS также, что вы можете непосредственно установить в Ubuntu и копировать данные с cp, rsyncили любым другим инструментом.
Сергей

rsync - лучший инструмент для копирования / синхронизации. -A (-rlptgoD) сохраняет время модификации. Смотрите man rsync для более подробной информации. Однако для этого требуется SSH + rsync на обоих хостах.
Терри Ван

Ответы:


3

Я считаю, что я решил проблему. В Ubuntu 12.04, в Nautilus есть два способа подключения к удаленному DiskStation NAS. Один сохраняет время модификации, другой нет.

В меню в левой части окна Nautilus кнопка Обзор сети ... в конечном итоге приводит к подключению AFP (Apple Filing Protocol) к DiskStation, через которое ни Nautilus, ни cp -pкопии не сохраняют время модификации. Я попытался отключить поддержку Apple в DiskStation, но в этом режиме DiskStation даже не был виден в Browse Network.

В меню Файл Наутилуса есть опция Подключиться к серверу ..., которая предлагает множество протоколов. Я выбрал Windows, ввел свои учетные данные и без проблем подключился. В этом режиме время модификации сохраняется, поэтому я смог повторно скопировать мои фотографии и сохранить их даты.

Спасибо Сергей и Давид6 за ваши предложения. Надеюсь, люди найдут эту информацию ценной.


Я использовал «Подключение к серверу» для подключения к другому компьютеру с Ubuntu из Nautilus в Ubuntu 18.04, и при копировании файлов Nautilus сохранял временные метки каталогов, но не файлов. Полуночный командир установил все метки времени изменения файла на время копии. BeyondCompare - сохраненный файл, но не каталог, временные метки.
Дан Даскалеску

2

Стандартная cpкоманда имеет --preserveфлаг, который сохранял определенные атрибуты (по умолчанию - режим, владение, метки времени) при копировании.

Так что-то вроде этого:

cp -rp /source/photos/folder /destination/photos/folder

следует сделать свое дело в «нормальном» случае. Однако, afp://вещь в URL смущает меня - это протокол Apple Filing Protocol? В этом случае все ставки отключены.

Одна мысль, которую я хотел бы добавить - полагаться на даты изменения файлов для каталогизации ваших фотографий очень хрупко. Для этого предназначены метаданные изображения (EXIF и т. Д.). Или, по крайней мере, просто поместите их в каталоги в соответствии с датой съемки: фотографии / 2012/12/05 и т. Д.


Спасибо за совет, Сергей. Если мне придется использовать командную строку, я буду, но я надеялся, что Ubuntu сможет делать правильные вещи через графический интерфейс. Это было в прошлом (до 12.04). И да, я собирался переместить фотографии в папки, упорядоченные по месяцам, когда заметил проблему со временем модификации.
Рэндалл Кук

Я попытался cp -pиз терминала, и я получил эту ошибку: "cp: сохранение времени для '.gvfs / AFP тома фотографии для randall на DiskStation / target_dir / image.JPG': операция не поддерживается". Так что, думаю cp -p, не сработает. Я попробую предложение david6.
Рэндалл Кук

При использовании Mac OS для доступа к Synology NAS через терминал cp -pне сохраняются отметки времени. Я подключил NAS через smb. Я попросил поддержки Synology, и, по-видимому, отсутствие сохранения является поведением по умолчанию. С другой стороны, rsyncсохраняет метки времени.
Андрей

Только в отношении изображений, и если дата съемки EXIF ​​беспокоит вас (и действительно хрупкая). Если кто-то хочет восстановить последние измененные даты из Exif Information, посмотрите здесь: → photo.stackexchange.com/a/69193/48640
Фрэнк Нок


2

Это классическая проблема push / pull для удаленного копирования.

Получатель хост не чтит дату штампа из полученных файлов. Наутилус имеет ту же ошибку, с 10.04 LTS до 12.10 ..

Это решается (для Nautilus), при копировании между двумя узлами Ubuntu путем копирования всегда с удаленным хостом-(источник) на локальный хост-(получатель). (AKA ' PULL ')


Ваша проблема с сетевым хранилищем, а не с Ubuntu.

Это необходимо для отметки даты получения файлов (по умолчанию).

Используете ли вы NFS (Linux) или CIFS (Windows) для обмена файлами?


Спасибо, Давид6. Я определенно не использую NFS, так как он отключен на DiskStation, но включен общий доступ к файлам Windows и Mac. Когда я подключаюсь к DiskStation, Nautilus (я полагаю) запрашивает только имя пользователя и пароль, а не протокол. У монтирования, которое я получаю, в названии указано «AFP», поэтому я думаю, что оно выбрало протокол файла Apple. Я попробую принудительно смонтировать CIFS, посмотрю, работает ли это, а затем найду способ автоматически получить это.
Рэндалл Кук

0

Оказывается, что сохранение временных меток для файлов и каталогов все еще остается проблемой в 2019 году! Я копировал файлы с машины Ubuntu 16 на Ubuntu 18 по SFTP, используя Nautilus на Ubuntu 18, и у всех файлов была текущая временная метка, но у каталогов были оригинальные временные метки. Другие инструменты тоже не сработали:

Что работало, так это монтирование удаленной файловой системы с использованием sshfs :

$ sudo mkdir /mnt/remote-machine
$ sudo sshfs -o allow_other,default_permissions dandv@10.15.x.x:/ /mnt/remote-machine
$ cp -rp /mnt/remote-machine/path/to/files ./
$ # ... or use another file manager

Копирование из смонтированного пути также позволило Midnight Commander сохранить временные метки (но не помогло BeyondCompare).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.