vendredi 24 janvier 2014

Archivage et purge de répertoires avec Talend

Un des besoins récurrents dans les entreprises est de faire le ménage dans les répertoires des serveurs, et notamment sur les serveurs d'échanges de données où on archive les fichiers de logs, les fichiers en entrée, les fichiers en sortie, j'en passe et des meilleures.

Talend étant l'outil privilégié pour gérer les échanges de données, il était naturel de développer un job d'archivage et de purge de répertoires.


Le fonctionnement de ce job se base sur une table de paramétrage qui définit une liste de tâches d'archivage à exécuter, avec pour chaque tâche :
  • le chemin du répertoire à archiver
  • le masque des fichiers à archiver (*.log, fic*.txt, ...)
  • un indicateur définissant s'il faut traiter le répertoire de manière récursive
  • un indicateur définissant s'il faut archiver les fichiers
  • le délai d'archivage en jours
    si l'indicateur d'archive est à "oui", on archive les fichiers correspondant au masque et dont la date de création est >= à la date du jour moins le délai d'archive
    ==>> création d'un fichier ZIP
  • un indicateur définissant s'il faut purger (supprimer) les fichiers 
  • le délai de purge en jours
    si l'indicateur de purge est à "oui", on supprime les fichiers ZIP correspondant à la tâche d'archive en cours et dont la date de création est >= à la date du jour moins le délai de purge
Le job peut être planifié via le planificateur de tâches ou le système cron de Linux.

Un fichier de log est généré à chaque exécution : il contient pour chaque tâche d'archivage (chaque répertoire) la liste des fichiers archivés et et/ou des fichiers purgés.

Le job fait appel aux composants de gestion de fichiers :
  • tFileList pour parcourir les répertories
  • tFileProperties pour récupérer la date du fichier
  • tFileArchive pour l'archivage
  • tFileCopy, tFileDelete