Gestion de doublons et synchronisation : un cas peut-être pas si particulier mais la solution est où ?
Bonjour,
Confronté un problème de gestion de doublons je ne voudrais pas dépenser beaucoup d'énergie à résoudre un problème déjà résolu 10*000 fois.
Résume du sujet :
Il me faut à la fois vérifier qu'il n'y a pas de doublons de fichiers (ayant un nom identifiant unique) dans les arborescences de sauvegarde (sous-structures identiques), mais aussi qu'il existe toujours dans d'autres arborescences au moins un doublon de tout fichier unique quelconque pris dans l'arborescence de référence.
Cette proposition peut paraître assez absconse mais en expliquant le but recherché est le processus on pourra comprendre la nature du problème.
Détail du problème
Nous avons des sources de fichiers générés par des périphériques d'acquisition audio et vidéo avec des structures de répertoire très peu contrôlables ou totalement figées (un enregistreur audio avec quatre répertoires A,B,C,D pouvant contenir chacun 99 fichiers au maximum, des cartes d'appareil photo créant des sous répertoires par mois).
nota: Il est admis que le paramétrage permet que les noms de fichiers soient uniques.
Le problème est double :
- pouvoir sauvegarder ces fichiers en sécurité
- les utiliser dans des projets et créer des fichiers dérivés (modifiés, partiels etc...) sans perdre la référence qui est l'identifiant du fichier source.
Actuellement j'ai adopté (il y a plusieurs centaines de milliers de fichiers) la solution suivante :
- Je recopie les ajouts au répertoires du périphérique source dans des dossiers datés de la date de la sauvegarde en conservant la structure des sous répertoires de la source.
- Ces sauvegardes font elles-même l'objet d'une sauvegarde sécurisée incrémentielle sur des disques raid1.
- Les fichiers du périphérique source sont nettoyés quand il y a saturation, souvent nettoyage des fichiers les plus anciens en effet conserver les fichiers les plus récents sur le périphérique (appareil photo, vidéo, enregistreur musique et voix etc.) est souvent très intéressant.
- Enfin les fichiers sont souvent individuellement ou par lots recopiés vers des projets à partir de la sauvegarde primaire (disques de plusieurs tera octets numérotés eux-mêmes faisant objet des sauvegardes de sécurité) et génèrent des dérivés.
Le problème technique posé
Mon problème et que l'ensemble de ces opérations sont actuellement presque entièrement manuelles. C'est long et anxiogène.
Je cherche un outil pour effectuer si possible de manière automatique via un script les opérations suivantes :
- déterminer les fichiers présents sur le périphérique et qui ne le sont pas sur la sauvegarde primaire pour générer une mise à jour de sauvegarde primaire (ajout d'un répertoire principal avec comme sous répertoires ceux du périphérique d'acquisition et comme contenu les fichiers nouveaux)
- vérifier que tous les fichiers d'un périphérique sont bien présents sur la sauvegarde primaire après une mise à jour (ce n'est pas une simple comparaison de répertoires puisque le même répertoire d'un périphérique d'acquisition peut avoir des fichiers dans des répertoires différents de la sauvegarde référence résultant du découpage lors des sauvegardes successives)
- marquer (lister) tous les fichiers présents dans la sauvegarde primaire et non repris dans les projets et pour ceux qui sont présents lister tous les fichiers dérivés. J'explique : les fichiers utilisés comme sources, identiques ou dérivés des originaux, sont sont nommés dans les projets en utilisant un masque comprenant toujours le nom unique du fichier source (< nom unique> => Dans les fichiers sources du projet les fichiers dérivés ont un nom de la structure [*<Nom unique>*.*]
Voilà, ce n'est pas très simple et je pense que je devrais probablement écrire des scripts en utilisant des utilitaires existants.
J'utilise depuis de nombreuses années un outil très performant qui est ADCS mais il ne répond que partiellement au besoin.
Avez-vous des suggestions d'outils à me faire, ou même des suggestions d'organisation du job répondant à des outils spécifiques qui seraient adaptés à ce type de problème ?
Cordialement
Trebly