Comme je l'annonçais dans un précédent article, voici un script bash qui permet de copier à l'aide de rsync des grosses quantités de données, de surveiller l'intégrité des données, de trouver les doublons, etc...

Fool (File tOOLkit) est un script écrit en bash sous licence GNU General Public License permettant de s'assurer de la bonne santé, de l'intégrité, de créer des sauvegardes de grosse quantité de gros fichiers.

Il à été conçu pour traiter de très grand nombre de fichiers d'assez grosse taille, notamment les photos, j'en dispose un assez grand nombre de photos (~120Go), cette taille m'empêche d'utiliser un outils de version comme Git ou Svn, c'est pour cela que j'ai créé ce script qui me permet de faire des synchronisations sur des disques dûrs, sur des serveurs distants ou encore de détecter les doublons, vérifier l'intégrité des données avec le calcul des sommes md5, etc…

Fool est un outils vous donnant les moyens de garder longtemps vos données auxquelles vous tenez à l'aide d'actions simples, le contrôle d'intégrité qui peut être lancé après une copie, la synchronisation vous permettant de multiplier les copies de vos données, etc…

Voici une liste des actions qu'il est possible d'utiliser :

  • clean : Supprime tous les fichiers ou expressions définis dans le fichier clean.conf
  • md5 : Calcule la somme md5 de tous les fichiers de l.arborescence et stocke le tout
  • duplicate : Cherche les fichiers en double à partir des sommes md5 calculées précédemment
  • checkmd5 : Vérifie la somme md5 des fichiers avec celle stockée
  • diff : Affiche les différences entre les dernières sommes calculées.
  • size : Renvoie la taille de l'arborescence de fichiers
  • batch : Exécute les actions md5, duplicate, checkmd5
  • cbatch : Exécute les actions clean, md5, duplicate, checkmd5
  • sync : Lance une commande synchronisation rsync
  • info : Renvoie des informations sur la configuration de l'application

Exemples d'utilisations

Lance la commande clean et parcours l'arborescence dans le but de faire du ménage :

$ ./fool.sh clean
Clean '/mnt/raid/media/Photos' for '.DS_Store' [ok]
Clean '/mnt/raid/media/Photos' for '._.DS_Store' [ok]
[info]  Executed in 0 second(s)
$ 

Recherche les fichiers dupliqués :

$ ./fool.sh duplicate
Search duplicate [ok]
[warn]  There are 2 different duplicate files !

194577a7e20bdcc7afbb718f502c134c ./event/2009/07 Vacances/img_908.jpg
194577a7e20bdcc7afbb718f502c134c ./export/img_908.jpg

a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107-2.CR2
a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107.CR2

[info]  Executed in 199 second(s)
$ 

Liste la configuration de la synchronisation :

$ ./fool.sh sync list
desktop2serv
  url :        hugo@server:~/backup/remote
  local path : event/2003
diskusb200go
  url :        /media/USBDISK/backup
  local path :
$ 

Synchronise l'arborescence vers un disque usb préalablement déclaré :

$ ./fool.sh sync to diskusb200go
Sync '/mnt/raid/media/Photos' to '/media/USBDISK/backup' ? (yes/no)
...
$ 

Retrouvez toutes les commandes et la documentation complète sur le wiki : /wiki/projets/fool

Lien relatif :