Как сохранить время изменения файла при копировании на 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
Фрэнк Нок
Попробуйте использовать cp -aвместо этого .
Пабло Бьянки
2

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

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

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


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

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

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

david6
источник
Спасибо, Давид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).

Дан Дакалеску
источник