Jak mogę zachować czasy modyfikacji plików podczas kopiowania na NAS?

8

Niedawno zainstalowałem Synology DiskStation w mojej sieci. Zainstalowałem go z komputera Ubuntu 12.04.1 za pomocą przycisku Przeglądaj sieć w Nautilus 3.4.2. Pojawia się jako afp: //[email protected]/photo/ w Nautilus.

Na razie w porządku. Następnie przesłałem do niego wiele zdjęć, wszystkie z modyfikacjami obejmującymi kilka miesięcy. Kiedy spojrzałem na katalog zdjęć na DiskStation, wszystkie miały czasy modyfikacji w momencie ich kopiowania, a nie czasy modyfikacji na komputerze źródłowym. Tyle o sortowaniu ich według daty na DiskStation.

Czy istnieje sposób na ponowne skopiowanie plików, ale datę ich modyfikacji należy zachować? Być może źle zamontowałem DiskStation. Być może Nautilus był niewłaściwym narzędziem do użycia. Jakieś sugestie?

BTW, przeniosłem gigabajty zdjęć na inny NAS (Plextor PX-EH) przez SMB / CIFS z Ubuntu 10.04, 10.10, 11.04 i 11.10 z zachowanymi czasami modyfikacji. Problem musi dotyczyć oprogramowania Synology lub niektórych programów Ubuntu 12.04.

Randall Cook
źródło
Czy ten NAS obsługuje dostęp SSH? Jeśli tak, możesz użyć rsyncjednego z jego interfejsów graficznych do synchronizacji zdjęć. Ponadto, powinny wspierać SMB / CIFS też, co można bezpośrednio zamontować w Ubuntu i kopiowanie danych z cp, rsynclub jakiegokolwiek innego narzędzia.
Siergiej
rsync to najlepsze narzędzie do kopiowania / synchronizacji. -A (-rlptgoD) zachowuje czas modyfikacji. Aby uzyskać więcej informacji, zobacz man rsync. Wymaga to jednak SSH + rsync na obu hostach.
Terry Wang,

Odpowiedzi:

3

Wierzę, że rozwiązałem problem. W Ubuntu 12.04 w Nautilus istnieją dwa sposoby połączenia ze zdalnym serwerem DiskStation NAS. Jeden zachowuje czasy modyfikacji, drugi nie.

W menu po lewej stronie okna Nautilus przycisk Przeglądaj sieć ... ostatecznie prowadzi do połączenia AFP (Apple Filing Protocol) z DiskStation, dzięki któremu ani Nautilus, ani cp -pkopie nie zachowują czasu modyfikacji. Próbowałem wyłączyć obsługę Apple w DiskStation, ale w tym trybie DiskStation nie była nawet widoczna w Browse Network.

W menu Plik Nautilusa znajduje się opcja Połącz z serwerem ..., która oferuje wiele protokołów. Wybrałem system Windows, wprowadziłem dane uwierzytelniające i nawiązałem połączenie bez problemów. W tym trybie zachowywane są czasy modyfikacji, więc mogłem skopiować moje zdjęcia i zachować ich daty.

Dziękuję Siergiej i David 6 za sugestie. Mam nadzieję, że ludzie uznają te informacje za cenne.

Randall Cook
źródło
Użyłem „Połącz z serwerem”, aby połączyć się z inną maszyną Ubuntu z Nautilus na Ubuntu 18.04, a podczas kopiowania plików Nautilus zachował znaczniki czasowe katalogów, ale nie plików. Midnight Commander ustawia wszystkie znaczniki czasowe modyfikacji plików na czas kopiowania. Zachowany plik BeyondCompare, ale nie katalog, znaczniki czasu.
Dan Dascalescu
2

Standardowe cppolecenie ma --preserveflagę, która zachowuje pewne atrybuty (domyślnie - tryb, własność, znaczniki czasu) podczas kopiowania.

Więc coś takiego:

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

powinien załatwić sprawę w „normalnym” przypadku. Jednak afp://rzecz w adresie URL myli mnie - czy jest to protokół Apple Filing Protocol? W tym przypadku wszystkie zakłady są wyłączone.

Jedna myśl, którą chciałbym dodać - poleganie na datach modyfikacji plików podczas katalogowania twoich zdjęć jest bardzo delikatne. Do tego służą metadane obrazu (EXIF itp.). A przynajmniej umieść je w katalogach zgodnie z datą ich wykonania: zdjęcia / 2012/12/05 itd.

Siergiej
źródło
Dzięki za wskazówkę, Sergey. Jeśli będę musiał użyć wiersza poleceń, zrobię to, ale miałem nadzieję, że Ubuntu będzie w stanie zrobić właściwą rzecz poprzez GUI. Tak było w przeszłości (sprzed 12.04). I tak, miałem zamiar przenieść zdjęcia do folderów uporządkowanych według miesięcy, gdy zauważyłem problem z czasem modyfikacji.
Randall Cook,
Próbowałem cp -pz terminala i otrzymałem błąd: „cp: zachowanie czasów dla zdjęcia woluminu„ .gvfs / AFP dla randall na DiskStation / katalog_docelowy / image.JPG ”: Operacja nie jest obsługiwana”. Więc chyba cp -pnie zadziała. Spróbuję sugestii david6.
Randall Cook,
Podczas korzystania z systemu Mac OS w celu uzyskania dostępu do serwera Synology NAS przez terminal, cp -pnie zachowuje znaczników czasu. Zainstalowałem NAS przez smb. Poprosiłem o wsparcie Synology i najwyraźniej brak zachowania jest zachowaniem domyślnym. Z drugiej strony rsynczachowuje znaczniki czasu.
andrewj
Tylko w odniesieniu do zdjęć i jeśli data wykonania zdjęcia EXIF ​​przeszkadza (i rzeczywiście jest krucha). Jeśli ktoś chce przywrócić daty ostatniej modyfikacji z informacji Exif, zajrzyj tutaj: → photo.stackexchange.com/a/69193/48640
Frank Nocke,
Rozważ użycie cp -azamiast tego .
Pablo Bianchi
2

Jest to klasyczny problem push / pull w przypadku zdalnego kopiowania.

Odbiorca gospodarz niedotrzymywania datownika z otrzymanych plików. Nautilus ma tę samą wadę, od 10,04 LTS do 12,10 ..

Zostało to rozwiązane (w przypadku Nautilus) podczas kopiowania między dwoma hostami Ubuntu, poprzez zawsze kopiowanie z hosta zdalnego (źródła) na hosta lokalnego (odbiorcy). (AKA „ PULL ”)


Twój problem dotyczy urządzenia NAS, a nie Ubuntu.

Potrzebujesz go, aby honorować datownik otrzymanych plików (domyślnie).

Czy używasz NFS (Linux) lub CIFS (Windows) do udostępniania plików?

david6
źródło
Dzięki, David6. Na pewno nie używam NFS, ponieważ jest on wyłączony na DiskStation, ale udostępnianie plików Windows i Mac jest włączone. Kiedy łączę się z DiskStation, Nautilus (chyba) prosi mnie tylko o nazwę użytkownika i hasło, a nie protokół. Zdobycie, które otrzymałem, ma w nazwie „AFP”, więc chyba wybrał protokół plików Apple. Spróbuję wymusić zamontowanie CIFS, zobaczę, czy to zadziała, a następnie znajdę sposób, aby automatycznie to uzyskać.
Randall Cook,
0

Okazuje się, że zachowanie znaczników czasu dla plików i katalogów nadal stanowi problem w 2019 roku! Kopiowałem pliki z komputera Ubuntu 16 na Ubuntu 18 z SFTP, używając Nautilus na Ubuntu 18, i wszystkie pliki miały bieżący znacznik czasu, ale katalogi miały oryginalne znaczniki czasu. Inne narzędzia również zawiodły:

To, co zadziałało, to zamontowanie zdalnego systemu plików za pomocą sshfs :

$ sudo mkdir /mnt/remote-machine
$ sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/remote-machine
$ cp -rp /mnt/remote-machine/path/to/files ./
$ # ... or use another file manager

Kopiowanie z zamontowanej ścieżki umożliwiło także Midnight Commander zachowanie znaczników czasu (ale nie pomogło BeyondCompare).

Dan Dascalescu
źródło