Hello,
Je suis en train de me faire un script qui synchronise deux répertoires (avec renommages des fichiers selon certaines règles donc pas possible de faire avec rsync).
Le répertoire destination est une clef usb en fat32 (c'est elle qui semble poser problème et je n'ai pas d'autre choix possible pour le FS de cette clé).
Donc... dans mon script je fais une copie du fichier source vers la destination de cette manière afin de pouvoir comparer les dates plus tard:
cp --preserve=timestamps source destination |
Après la copie, voici à quoi ressemble le résultat d'un stat sur les deux fichiers:
le source:
Modi. : 2010-03-21 22:58:07.999999900 +0100 |
le fichier sur la clé usb de destination:
Modi. : 2010-03-21 22:58:07.000000000 +0100 |
Les dates de modif sont les mêmes des deux cotés (aux pouiémes près qui ne semble pas être pris en compte par ma méthode de comparaison), du coup quand dans mon script je fais un -nt ou un -ot entre ces deux fichiers ça me renvoie bien que leurs dates sont identiques.
Maintenant si je démonte ma clef, que je la remonte et que je refais le stat j'ai ça:
Modi. : 2010-03-21 22:58:06.000000000 +0100 |
La date a été changé (elle a perdu une seconde???), les comparaisons de dates échouent à chaque fois et tout est retransféré si je relance le script.
Voici pour info les options de montage de la clef montée par Gnome:
rw,nosuid,nodev,relatime,uid=1000,gid=100,fmask=0022,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks |
Est-ce qu'il y a un moyen d’éviter ce comportement (doit bien y en avoir une vu que ca marche avec rsync qui a pourtant exactement le même résultat que mon "cp --preserve" quand je compare les fichiers avec stat)?
Sinon est-ce que vous avez une méthode pour palier à ce problème (je suppose que toute autre méthode de comparaison de date échouerait)?
Merci pour votre aide.