dimanche 13 avril 2008

Sauvegarde des fichiers du site

Le répertoire 'Joomla' du site 'Tendoryu' contient le programme Joomla, ses extensions, les extensions tierces, les images et les quelques fichiers multimedia.

Aujourd'hui cela se traduit par les quelques chiffres suivants:
  • 1375 répertoires
  • 7894 fichiers
  • 110 168 175 octets, 105 mega-octets.

Dans un précédent post, la sauvegarde de la base de données avait été abordée. Voyons un peu comment est organisée celle pour les fichiers.

Le fai FREE fournit un seul moyen d'accéder au système de fichiers de notre
site. On y accède par le protocole FTP.
A l'usage, l'accès est difficile car FREE limite à deux accès simultanés et les débits sont très limités: 20Ko/s en moyenne. Le timeout (temps d'inactivité de la session à partir duquel le système vous déconnecte) est de quelques secondes seulement. Malgré ces inconvénients on peut batir un système de sauvegarde assez efficace.

La sauvegarde est réalisée avec un script-shell en Bash, et lancée quotidiennement à 03h00am par l'ordonnanceur des taches cron. Le script lance principalement un appel à la commande lftp qui permet la synchronisation de deux répertoires: un en local (le PC) à partir de l'autre sur le site d'hébergement de Free.

A la première synchronisation, le répertoire '/tendoryu' de chez Free est copié intégralement en local.
L'opération est longue. 1h30.

Par la suite, seuls les fichiers et répertoires créés ou plus récents que ceux du site en local, sont recopiés du site de Free en local.
L'opération de synchronisation ne dure alors plus que d'environ 25 minutes. Ce temps est passé principalement à balayer les fichiers et répertoires fort nombreux du site.

A l'issu de la synchronisation, on 'zippe' le répertoire en local avec la commande tar. Le fichier est horodaté et conservé un certain temps. Le fichier TAR compressé occupe 65 mo actuellement.

La rétention du fichier archivée n'est pas encore fixée. On constate que la signature numérique des archives d'un jour sur l'autre est la même quand aucune action de mise à jour du site a été faite. Il est alors inutile de conserver des archives identiques en local. Le script-shell est donc en cours de finalisation pour prendre en compte ce genre de détails. Il n'est pas rare que le site ne soit pas modifié pour quelques jours consécutifs.

La réflexion sur l'externalisation du fichier 'archive' est en cours. Actuellement, la copie manuelle sur clef USB ne me satisfait pas beaucoup. L'automatisation totale est l'objectif.

Pour finir, le script envoie un courrier électronique au gestionnaire pour l'informer des résultats des différents processus passés.

Aucun commentaire: