web-dev-qa-db-fra.com

Comment préserver les temps de modification des fichiers lors de la copie sur un NAS?

J'ai récemment installé un Synology DiskStation sur mon réseau. Je l'ai monté à partir d'un ordinateur Ubuntu 12.04.1 à l'aide du bouton Parcourir le réseau de Nautilus 3.4.2. Il apparaît comme suit: //[email protected]/photo/ dans Nautilus.

Jusqu'ici tout va bien. J'ai ensuite téléchargé de nombreuses photos, toutes avec des délais de modification de plusieurs mois. Lorsque j'ai regardé le répertoire des photos sur le DiskStation, elles avaient toutes des heures de modification pour le moment où elles étaient copiées, pas les heures de modification sur l'ordinateur source. Voilà pour les trier par date sur le DiskStation.

Existe-t-il un moyen de recopier les fichiers tout en préservant la date de modification? J'ai peut-être monté le DiskStation dans le mauvais sens. Peut-être que Nautilus n’était pas le bon outil à utiliser. Aucune suggestion?

En passant, j'ai déplacé des gigaoctets de photos vers un autre NAS (Plextor PX-EH) via SMB/CIFS à partir d'Ubuntu 10.04, 10.10, 11.04 et 11.10, les temps de modification étant entièrement préservés. Le problème doit venir du logiciel Synology ou de certains logiciels Ubuntu 12.04.

7
Randall Cook

Je crois avoir résolu le problème. Dans Ubuntu 12.04, Nautilus propose deux méthodes pour se connecter au DiskStation NAS distant. On préserve les temps de modification, on ne le fait pas.

Dans le menu situé à gauche de la fenêtre Nautilus, le bouton Parcourir le réseau ... mène finalement à une connexion AFP (Apple Filing Protocol) au DiskStation, grâce à laquelle ni Nautilus ni les copies cp -p ne préservent la date de modification. . J'ai essayé de désactiver le support Apple sur le DiskStation, mais dans ce mode, le DiskStation n'était même pas visible dans Parcourir le réseau.

Dans le menu Fichier de Nautilus, il existe une option Se connecter au serveur ... qui offre un hôte de protocoles. J'ai choisi Windows, entré mes informations d'identification et connecté sans problème. Dans ce mode, les dates de modification sont conservées. J'ai donc pu recopier mes photos et conserver leurs dates.

Merci Sergey et david6 pour vos suggestions. Espérons que les gens trouveront cette information utile.

3
Randall Cook

C'est le problème classique Push/Pull, pour la copie à distance.

L'hôte destinataire n'honore pas l'horodatage des fichiers reçus. Nautilus a cette même faute, de 10.04 LTS à 12.10 ..

Ceci est résolu (pour Nautilus), lors de la copie entre deux hôtes Ubuntu, en copiant toujours from l'hôte distant (source) vers l'hôte local (destinataire). (AKA 'PULL')


Votre problème concerne la boîte NAS et non pas Ubuntu.

Vous en avez besoin pour respecter l'horodatage des fichiers reçus (par défaut).

tilisez-vous NFS (Linux) ou CIFS (Windows) pour le partage de fichiers?

2
david6

La commande standard cp a le drapeau --preserve qui conserve certains attributs (par défaut - mode, propriété, horodatage) lors de la copie.

Donc, quelque chose comme ça:

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

devrait faire l'affaire dans le cas "normal". Cependant, la chose afp:// dans l'URL me confond - est-ce que c'est Apple Protocole d'archivage? Tous les paris sont désactivés dans ce cas.

Je pense que je voudrais ajouter ceci: il est très fragile de pouvoir compter sur les dates de modification des fichiers pour cataloguer vos photos. C'est à cela que servent les métadonnées d'image (EXIF, etc.). Ou, au moins, il suffit de les mettre dans des répertoires en fonction de leur date de prise de vue: photos/2012/12/05 etc.

2
Sergey

Il s'avère que la conservation des horodatages pour les fichiers et les répertoires est toujours un problème en 2019! Je copiais des fichiers d'une machine Ubuntu 16 vers une autre Ubuntu 18 via SFTP, en utilisant Nautilus sur Ubuntu 18, et tous les fichiers avaient l'horodatage actuel, mais les répertoires avaient les horodatages d'origine. D'autres outils ont également échoué:

Ce qui a fonctionné était de monter le système de fichiers distant en utilisant 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

Copier à partir du chemin monté a également permis à Midnight Commander de conserver les horodatages (mais n'a pas aidé BeyondCompare).

0
Dan Dascalescu