Backups/Fr

From TuxFamilyFAQ
Jump to: navigation, search


Concepts

Pour des raisons financières, TuxFamily ne fournit aucune sauvegarde. Bien que l'équipe technique ait évidemment des sauvegardes minimales destinées à réparer toute la plateforme en cas de problème technique majeur, cela ne correspond pas aux attentes habituelles pour un service de sauvegardes : durée de rétention décente, possibilité de piocher dans les données à restaurer sans contacter un administrateur, etc. Pour faire simple, considérez que nos sauvegardes sont faites comme ça. Toutefois, TuxFamily fournit tout de même tout ce qu'il vous faut pour mettre en place vos propres sauvegardes régulières grâce à vos propres machines.

Pourquoi devrais-je sauvegarder mes données ?

Trois grandes raisons :

  • Éviter de perdre votre travail, ou celui de vos utilisateurs/contributeurs, en cas de souci technique chez TuxFamily -- bien que notre infrastructure soit plutôt fiable, cela a toujours été la raison numéro 1 de sauvegarder des données.
  • Vous offrir la possibilité de retrouver votre site tel qu'il était...
    • avant que vous ne fassiez cette énorme bourde dans votre CMS ou autre erreur
    • ou avant qu'il ne se fasse attaquer par un quelconque "script-kiddie" parce que vous n'avez pas respecté nos recommandations de sécurité.
  • Plus vous pouvez rapatrier de données par vous-même, plus vous êtes indépendant de votre hébergeur.

Que puis-je sauvegarder et comment ?

  • Chaque nuit, nous générons un dump .sql pour chacune de vos bases MySQL/PgSQL ; vous pouvez les rapatrier en utilisant scp/rsync.
  • Les espaces web et les espaces de téléchargement peuvent être récupérés en utilisant rsync.
  • Les dépôts SVN peuvent être mirrorés avec svnsync.
  • Les dépôts Git et Mercurial peuvent être facilement clonés.

Qu'est-ce que je ne peux pas sauvegarder et pourquoi ?

Il n'y a actuellement aucun moyen pour vous de sauvegarder ce que vous configurez dans le panel TuxFamily (description et membres des groupes, paramètres des listes de diffusion, domaines mail, noms de domaine, et tâches Cron) -- toutefois, la base de données sous-jacente est régulièrement sauvegardée de notre côté avec une bonne rétention, donc vous ne devriez pas vous inquiéter pour cela. À noter que vous devrez contacter l'équipe TuxFamily pour restaurer ce genre de données. De plus, les scripts fournis ici se focalisent sur les espaces web, les espaces de téléchargement, les bases de données ainsi que les dépôts Subversion et ne traitent donc pas :

  • les dépôts CVS, car TuxFamily ne fournit pas de moyen de les sauvegarder complètement ; vous voudrez sans doute essayer cvssuck.
  • les dépôts Git/Mercurial, les listes de diffusion et les boîtes mail.

Pré-requis

Les scripts et techniques décrites ci-dessous supposent que votre compte SSH est activé. Si vous souhaitez ordonnancer ces scripts au lieu de les exécuter manuellement, vous aurez également besoin de mettre en place une clé SSH, comme décrit sur User/Fr. Notes :

  • Cette clé SSH doit être mise à disposition du compte utilisateur qui fera tourner vos scripts de sauvegardes.
  • Assurez-vous que vos sauvegardes sont stockées dans un emplacement sécurisé (c-à-d pas "world readable") : ne laissez pas vos sauvegardes se transformer en un vecteur d'attaque supplémentaire...

De plus, ce sont des techniques orientées Unix, testées sous Linux. Cela implique que vous avez besoin d'un système d'exploitation Linux, Unix ou assimilé, ce qui est supposé être plutôt courant dans le monde du Logiciel Libre. N'essayez pas d'utiliser votre accès SSH TuxFamily à la place : sans même parler des problèmes de quota, sauvegarder des données de la plateforme d'hébergement sur la plateforme d'hébergement elle-même n'a aucun sens.

Espaces web, espaces de téléchargement et bases de données

Il existe de nombreuses techniques pour récupérer et archiver des données régulièrement, depuis le script perso basé sur scp jusqu'aux onéreuses solutions propriétaires. Vous êtes bien entendu libre de choisir la solution qui correspond le mieux à vos besoins, selon vos compétences et contraintes. Ce qui suit est une procédure abrégée pour ordonnancer les sauvegardes de votre_projet chez TuxFamily en utilisant votre_compte utilisateur et l'outil rsnapshot. Vous pouvez bien sûr adapter les chemins à vos besoins (enfin, évitez /tmp et autres tmpfs tout de même) :

Créez le dossier qui accueillera vos sauvegardes :

mkdir -p /data/backups/{rsnapshot,run}
chmod 700 /data/backups

Adaptez cette configuration pour créer /data/backups/rsnapshot.conf

# Cette configuration provient d'un simple :
# zegrep '^[^#]' /usr/share/doc/rsnapshot/examples/rsnapshot.conf.default.gz
# ... sur ma machine de travail Debian. Voir man 1 rsnapshot pour plus de détails.
config_version	1.2
snapshot_root	/data/backups/rsnapshot/
cmd_cp		/bin/cp
cmd_rm		/bin/rm
cmd_rsync	/usr/bin/rsync
cmd_ssh	/usr/bin/ssh
cmd_logger	/usr/bin/logger
retain	daily	60
retain	weekly	8
verbose	2
loglevel	3
lockfile	/data/backups/run/rsnapshot.pid
backup	votre_compte@ssh.tuxfamily.org:/home/votre_projet/	tuxfamily/

Attention : les lignes de configuration ci-dessus contiennent des caractères tabulations qui doivent être préservés.

Ordonnancer les sauvegardes :

crontab -e
# m h  dom mon dow   command
0  8    *   *   *   /usr/bin/rsnapshot -c /data/backups/rsnapshot.conf daily
0 20    *   *   1   /usr/bin/rsnapshot -c /data/backups/rsnapshot.conf weekly

Voir "man 5 crontab" pour plus d'informations sur la syntaxe ci-dessus.

Dépôts SVN

L'outil SVNSync vous permet de créer et mettre à jour une copie de votre dépôt existant. Vous trouverez sur Internet de nombreux tutoriels expliquant comment cela fonctionne et comment l'utiliser, aussi cette FAQ va se contenter de répéter brièvement la procédure pour TuxFamily, en supposant que vous souhaitiez sauvegarder votre_depot SVN pour votre_projet :

Préparez le dépôt synchronisé :

mkdir -p /data/backups/svnsync/votre_projet
cd /data/backups/svnsync/votre_projet

# create a new SVN repository
svnadmin create votre_depot.synced

# Make this repository allow revision property changes
echo '#!/bin/sh' > votre_depot.synced/hooks/pre-revprop-change
chmod ug+x votre_depot.synced/hooks/pre-revprop-change

# prepare the new repository to be a read-only mirror of your SVN repository
svnsync init file:///data/backups/svnsync/votre_projet/votre_depot.synced svn://svn.tuxfamily.org/svnroot/votre_projet/votre_depot/

Mettez-le à jour régulièrement :

crontab -e
# Récupération du depot Subversion de votre_projet (en incrémental)
30 08 * * * /usr/bin/svnsync --non-interactive synchronize file:///data/backups/svnsync/votre_projet/votre_depot.synced

Ce miroir vous permettra de dumper (et optionnellement filtrer) votre dépôt SVN. Si vous avez besoin de restaurer un tel dump sur TuxFamily, merci de contacter l'équipe TuxFamily.