Sauvegarder automatiquement les données de GEPI
Transcription
Sauvegarder automatiquement les données de GEPI
Sauvegarde automatique des données de GEPI Sommaire: 1. Sauvegarder en utilisant des scripts a) Sauvegarde automatique de gepi b) Création de l'utilisateur de sauvegarde c) Automatisation de la sauvegarde d) Envoi des sauvegardes à un serveur distant e) Restauration des sauvegardes i. Restauration de la base MySQL ii. Restauration du répertoire « documents » 2. Installation d'un serveur FTP a) Installation de vsftpd b) Création d’utilisateur(s) virtuel 3. Installation de backup-manager a) Prérequis b) Installation de backup-manager c) Configuration de backup-manager d) Automatisation des sauvegardes En période de conseil de classe, la sollicitation de GEPI est très importante et il est fondamental de faire des sauvegardes très régulières de la base MySQL. Cette tâche indispensable est cependant fastidieuse, c'est pourquoi ce document propose une méthode pour sauvegarder les données puis les uploader sur un autre serveur via FTP de manière totalement automatique. Il est donc nécessaire de posséder un serveur GEPI mais aussi une autre machine faisant office de serveur de sauvegarde, que nous appellerons srvsavgepi. Dans un premier temps, nous expliquerons comment gérer les sauvegardes entièrement à l'aide de scripts. Dans la deuxième partie, nous détaillerons comment installer et configurer un serveur FTP à l'aide du logiciel vsftp. Dans la dernière partie nous verrons qu'il est possible d'utiliser le logiciel backup-manager pour simplifier la mise en oeuvre. Remarque : srvftp peut fonctionner sous Windows, avec FilezillaServer par exemple, mais nous ne détaillerons pas cette installation. Nous ne donnerons le mode opératoire que pour vsftpd. Sauvegarde automatique des données 1 / 13 1. Sauvegarder en utilisant des scripts Description Identifiants de la doc Serveur gepi srvgepi Adresse du serveur gepi adresseIP Mot de passe root mdp0 Utilisateur du serveurgepi gepuser Mot de passe de gepuser mdp1 Mot de passe du root de Mysql mdp2 Utilisateur Mysql administrateur de gepi mgepuser Mot de passe de mgepuser mdp3 Utilisateur de sauvegarde sauveur Mot de passe de sauveur mdp4 Vos identifiants a) Sauvegarde automatique de gepi Comme gepi ne propose que des sauvegardes « manuelles », nous allons mettre en place une sauvegarde automatisée de la base sql gepi et du dossier « documents » (lié au cahier de texte) par l'intermédiaire du crontab d'un utilisateur dédié et la commande de sauvegarde mysqldump (intégrée à mysql). Puis par sftp nous transmettrons ces sauvegardes sur un serveur distant (mais du réseau interne par sécurité). L'avantage de cette méthode est qu'il n'y a rien à installer de plus sur le serveur, L'inconvénient est que comprendre les scripts n'est pas très facile. b) Création de l'utilisateur de sauvegarde Se connecter sur srvgepi en tant que gepuser puis passer en root (avec su). La commande adduser permet de créer un utilisateur avec espace personnel : adduser Saisir son nom : sauveur Puis saisir deux fois son mot de passe : mdp4 Laisser les renseignements suivants vides, taper « o » puis valider. L'utilisateur « sauveur » a été créé. Se déconnecter de la session root par la commande « exit », puis de même de l'utilisateur gepuser. Se connecter en tant que sauveur, vérifier que vous êtes bien dans le répertoire /home/sauveur/ à l'aide de la commande pwd puis y créer deux dossiers backup et backuph ; mkdir backup backuph backup va contenir les sauvegardes journalières de la base de donnée gepi et celles du dossier Sauvegarde automatique des données 2 / 13 « documents ». backuph va contenir les sauvegardes heure par heure de la base de données gepi (sans fermeture des tables). c) Automatisation de la sauvegarde mysqldump effectue une sauvegarde de la base gepi, l'option -x permet de fermer les tables avant de sauvegarder, puis les relance. Mais il faut que l'utilisateur mgepuser ait le droit RELOAD : mysqladmin -u root -pmdp2 > GRANT RELOAD ON *.* TO mgepuser; > quit; Nous allons utiliser le crontab de sauveur pour planifier diverses taches régulières (pour employer un langage ouinedozien) : Toujours en tant que sauveur: crontab -e Normalement c'est nano qui s'ouvre mais au cas où vous vous retrouviez devant une fenêtre de vi, voici quelques commandes utiles : i pour insérer du texte echap pour entrer les commandes (sauvegarder, quitter...) :wq pour quitter en enregistrant :q! : pour forcer la sortie sans rien modifier Ajouter les lignes suivantes à crontab : 0 1 * * * mysqldump -u mgepuser -pmdp3 -x -e -B gepi > /home/sauveur/backup/gepi`date +\%d\%m\%Y`.sql && gzip /home/sauveur/backup/gepi`date +\%d\%m\%Y`.sql 20 1 * * 1 tar cvfz /home/sauveur/backup/documents`date +\%d\%m\%Y`.tar.gz /var/www/gepi/documents 30 1 * * * find /home/sauveur/backup -type f -mtime +15 | xargs -r -n 10 rm 40 1 * * * sftp -b cmdgepi recepteur@IP_srvsavgepi 30 * * * * mysqldump -u mgepuser -pmdp3 -e -B gepi > /home/sauveur/backuph/hgepi`date +\%H\%d\%m\%Y`.sql && gzip /home/sauveur/backuph/hgepi`date +\%H\%d\%m\%Y`.sql 45 1 * * * find /home/sauveur/backuph -type f -mtime +1 | xargs -r -n 10 rm 55 1 * * * sftp -b cmdgepih recepteur@IP_srvsavgepi Explications : • Les différents champs de crontab sont : minute (0 à 59) ; heure (0 à 23) ; jour du mois (1 à 31) ; mois (1 à 12 ou un nom comme jan, feb...) ; jour de la semaine (0 à 6 : 0 = Dimanche, 1 = Lundi... ou mon, tue...) ; commande telle qu'elle serait saisie sous shell. • • • • • • mysqldump effectue une sauvegarde de la base gepi tous les jours à 01h00 et la place dans le dossier backup ainsi qu'une sauvegarde toutes les heures, mais sans fermer les tables, placée dans le dossier backuph. l'option -p et le mot de passe doivent être accolés. La partie `date +%H%d%m%Y` rajoute au nom de fichier créé l'heure, le jour, le mois et l'année de création du fichier. Comme la crontab interprète le « % » comme une fin de commande, on rajoute un « \ » avant chaque « % » . À 01h20 le lundi, le contenu du dossier « documents » est compressé dans le dossier backup. La troisième ligne permet de trouver tous les fichiers de « backup » ayant plus de quinze jours et de les supprimer à 01h30 tous les jours. Puisque nous ne pouvons passer directement les commandes internes de sftp à son appel, à 01h40 à la quatrième ligne, nous utilisons l’option spéciale -b qui permet de spécifier un fichier batch (ici cmdgepi et cmdgepih). Ce dernier n’est rien d'autre que l’ordonnance des commandes qui seraient entrées manuellement en situation normale. IP_srvsavgepi est l'adresse IP ou le nom du serveur qui recevra les sauvegardes. Sauvegarde automatique des données 3 / 13 • recepteur est le nom du compte utilisateur qui recevra les sauvegardes. d) Envoi des sauvegardes à un serveur distant Installation du serveur distant (Debian évidemment), création d'un utilisateur recepteur et de deux dossiers sbackup et sbackuph pour recevoir les sauvegardes. La machine faisant office de serveur FTP, si elle ne remplit que cette tâche, n'a pas besoin d'être puissante : un simple pentium et 64 Mo de RAM seront suffisants, ainsi bien sûr qu'une carte réseau. La première étape consiste à y installer un système d'exploitation (référez vous à http://gepi.mutualibre.org/download/install_sarge_et_install_gepi.pdf pour l'installation de Debian), puis de créer un utilisateur recepteur et de deux dossiers sbackup et sbackuph pour recevoir les sauvegardes. • Description Identifiants de la doc Serveur distant srvsavgepi Adresse IP du serveur distant IP_srvsavgepi Utilisateur recepteur du serveur distant recepteur mot de passe de recepteur mdp5 • Vos identifiants Configuration de ssh (inspirée http://www.aqra.ca/article.php3?id_article=47) Openssh est déjà installé (il s'installe avec le système de base). Nous allons créer un paire de clé privée/publique sur srvgepi. Nous lui attribuerons une passphrase vide de manière à pouvoir se connecter automatiquement à la demande sur srvsavgepi, mais uniquement au compte recepteur. Saisir en tant que sauveur sur srvgepi : ssh-keygen -t dsa Les lignes suivantes s'affichent : Generating public/private dsa key pair. Enter file in which to save the key (/home/sauveur/.ssh/id_dsa): laissez par défaut Created directory '/home/sauveur/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sauveur/.ssh/id_dsa. Your public key has been saved in /home/sauveur/.ssh/id_dsa.pub. The key fingerprint is: ...................................... Il suffit maintenant de créer, s'il n'existe pas, un repertoire ./ssh dans /home/recepteur de srvsavgepi et d'y créer un fichier nommé authorized_keys qui contiendra la clé contenue dans id.dsa.pub du dossier ./ssh de sauveur. Sauvegarde automatique des données 4 / 13 Il est vivement déconseillé de recopier la clé à la main. Par ftp coller id.dsa.pub dans le dossier ./ssh de recepteur, puis renommer ce fichier en authorized_keys (rajouter une ligne vierge à la fin du fichier pour d'autres clés éventuelles). Tester à partir du serveurgepi, en tant que sauveur : ssh recepteur@IP_srvsavgepi Si tout va bien, vous êtes alors connecté sur votre serveur distant au compte recepteur, sans avoir saisi le mot de passe de celui-ci. Nous avons créé une liaison sécurisée entre le compte sauveur et le compte recepteur et uniquement entre ses deux comptes. Une passphrase non-vide aurait garanti une sécurité encore meilleure face à certaines attaques mais comme nous travaillons au sein de notre réseau privé, le risque est extrêmement minime. Édition des commandes cmdgepi et cmdgepih Sur srvgepi, en tant que sauveur, taper : nano cmdgepi Y inserer le texte : • put exit /home/sauveur/backup/*.*.gz /home/recepteur/sbackup Enregistrer en quittant (CTRL +X). nano cmdgepih put exit /home/sauveur/backuph/*.*.gz /home/recepteur/sbackuph Enregistrez en quittant (CTRL +X). Il faut maintenant donner le droit d'exécution à ces deux fichiers, taper: chmod u+x cmdgepi chmod u+x cmdgepih e) Restauration des sauvegardes i. Restauration de la base MySQL On commence par dézipper la sauvegarde voulue : gunzip /home/sauveur/backup(h)/gepiquejeveux.sql.gz Remarque : Si la commande gunzip n'est pas reconnu, saisissez en tant que root apt-get install gunzip exit • On se connecte en tant que sauveur et on saisit : mysql -u mgepuser -pmdp3 >DROP DATABASE GEPI; >quit; Sauvegarde automatique des données 5 / 13 On vient de supprimer la base de donnée de GEPI. • Saisir : mysql -u mgepuser -pmdp3 < /home/sauveur/backup(h)/gepiquejeveux.sql Puis se connecter en tant que root (par su) pour relancer le serveur mysql: /etc/init.d/mysql restart exit La base est restaurée. ii. Restauration du répertoire « documents » Se connecter en tant que sauveur puis taper: cd /var/www/gepi En tant que root (par su), taper: tar xvzf /home/sauveur/backup/documentsquejeveux.tar.gz Par sécurité: chown -R www-data /var/www/gepi/documents exit Le répertoire documents est restauré. Rappel des identifiants : description Identifiants de la Vos identifiants doc Serveur gepi srvgepi Adresse du serveur gepi adresseIP Mot de passe root mdp0 Utilisateur du serveurgepi gepuser Mot de passe de gepuser mdp1 Mot de passe du root de Mysql mdp2 Utilisateur gepi Mysql administrateur de mgepuser Mot de passe de mgepuser mdp3 Utilisateur de sauvegarde sauveur Mot de passe de sauveur mdp4 Serveur distant srvsavgepi Sauvegarde automatique des données 6 / 13 Adresse IP du serveur distant IP_srvsavgepi Utilisateur recepteur du serveur distant recepteur mot de passe de recepteur mdp5 Dans la méthode précédente, le transfert se fait par SSH. Nous allons voir une deuxième possibilité où le transfert se fait via FTP et où l'on utilise un logiciel plutôt que des scripts. 2. Installation d'un serveur FTP a) Installation de vsftpd La machine faisant office de serveur FTP, si elle ne remplit que cette tâche, n'a pas besoin d'être puissante : un simple pentium et 64 Mo de RAM seront suffisants, ainsi bien sûr qu'une carte réseau. La première étape consiste à y installer un système d'exploitation (référez vous à http://gepi.mutualibre.org/download/install_sarge_et_install_gepi.pdf pour l'installation de Debian). Une fois ceci fait, il convient d'installer vsftpd sur srvsavgepi. Passons en root (commande « su ») puis : apt-get install vsftpd Commençer par sauvegarder les fichiers de configuration de vsftpd ce qui permettra, en cas de fausse manipulation, de pouvoir les restaurer : cp /etc/vsftpd.conf /etc/vsftpd.conf.old cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.old Par commodité, regrouper les fichiers de configuration dans un même dossier : mkdir /etc/vsftpd cd /etc/vsftpd b) Création d’utilisateur(s) virtuel Vsftpd utilise le mécanisme d'authentification PAM qui nécessite une base de données au format « Berkeley db ». Pour faire fonctionner cela nous devons installer un nouveau paquet : apt-get install libdb3-util Nous allons maintenant générer le fichier db, à partir d’un fichier texte contenant les couples identifiant – mot de passe par paire de ligne. Taper : nano vsftpd.txt Rentrer sur la première ligne l’identifiant et sur la deuxième le mot de passe : gepiftp ftppasswd Sauvegarde automatique des données 7 / 13 Il est indispensable que le fichier se termine par un retour à la ligne. Il ne doit contenir aucun commentaire. Remarque : Si vous en avez le besoin vous pouvez créer plusieurs utilisateurs. Il suffit simplement de rajouter, dans le fichier, des paires de ligne identifiant – mot de passe. Quitter nano en enregistrant le fichier vsftpd.txt (appui simultané sur CTRL et X) puis le convertir au format db : db3_load -T -t hash -f vsftpd.txt vsftpd.db Par sécurité, modifier les permissions sur ce fichier : chmod 600 vsftpd.db Créer maintenant un fichier « vsftpd.pam » qui dira à PAM d'utiliser la base de données que l’on vient de générer pour authentifier les utilisateurs : nano vsftpd.pam Y copier les lignes ci-dessous : auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd Enfin quitter nano en enregistrant (CTRL+X). Finalement, pour que PAM prenne en compte ce fichier, il faut le copier dans son dossier de configuration : cp vsftpd.pam /etc/pam.d/vsftpd PAM dispose maintenant de tous les éléments nécessaires à l’authentification. L’utilisateur « gepiftp » (ou les utilisateurs si vous en avez créés plusieurs) est en fait un utilisateur virtuel qui va être représenté par un utilisateur système linux que nous choisissons d’appeler « ftpuser ». Nous devons donc créer cet utilisateur sur le système ainsi que son groupe primaire que nous choisissons d’appeler « ftp » : groupadd ftp useradd -g ftp -d /home/ftp/ftpuser/ ftpuser Créer le répertoire personnel de cet utilisateur : mkdir -p /home/ftp/ftpuser Nous allons sécuriser le système en faisant en sorte que ce répertoire personnel n’appartienne pas à l’utilisateur et qu’il ne puisse pas y écrire : chown root.ftp ~ftpuser/ chmod 2750 ~ftpuser/ Remarque : Le setgid permet de s’assurer que les fichiers et dossiers qui seront créés dans le répertoire appartiendront tous au groupe ftp. c) Configuration du démon vsftpd Le fichier /etc/vsftpd.conf contient toutes les options de configuration générale. Nous vous Sauvegarde automatique des données 8 / 13 laissons le soin de détailler toutes les possibilités qui y sont offertes et nous vous proposons de l’éditer pour qu’il corresponde à celui ci-dessous : listen=YES anonymous_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO guest_enable=YES guest_username=ftpuser chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd user_config_dir=/etc/vsftpd/vsftpd_user_conf max_clients=20 max_per_ip=2 pam_service_name=vsftpd Créer maintenant le répertoire vsftpd_user_conf qui va permettre de gérer les droits de chaque utilisateur virtuel : mkdir vsftpd_user_conf/ Créer un fichier pour l’utilisateur virtuel « gepiftp » : nano vsftpd_user_conf/gepiftp anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=gepiftp local_umask=022 Pour le moment l’utilisateur virtuel a le droit d’écrire du point de vue de vsftpd, par contre il ne les a pas du point de vue du système de fichier et il ne pourra donc rien faire (vsftpd n’est qu’un logiciel et il ne peut pas outrepasser les réglages système). Créer donc un répertoire spécifique dans lequel gepiftp pourra écrire : cd ~ftpuser && mkdir -p gepiftp/upload chmod 2750 gepiftp && chmod 770 gepiftp/upload Enfin relançer le serveur ftp pour qu’il prenne en compte toutes les modifications : /etc/init.d/vsftpd restart La configuration du serveur FTP est maintenant terminée. Celui-ci possède un utilisateur « gepiftp » se connectant grâce au mot de passe « ftppasswd ». Cet utilisateur est confiné dans le répertoire /home/ftp/ftpuser/gepiftp qui apparaîtra pour lui comme étant la racine et dont il ne pourra pas sortir. Cela permet d’être sûr qu’il ne pourra pas porter atteinte au système. D’autre part il ne peut Sauvegarde automatique des données 9 / 13 pas uploader de fichiers à la racine du ftp (/home/ftp/ftpuser/gepiftp) mais seulement dans le répertoire /home/ftp/ftpuser/gepiftp/upload. Cela permet plus de souplesse en cas de délégation du contrôle du FTP à une autre personne. Rappelons que FTP est un des plus vieux protocoles existants mais aussi un des moins sécurisés puisque les mots de passe et les données y circulent en clair. Pour pallier à cela, vsftpd permet de faire du FTP over SSL, ce qui rajoute une couche de chiffrement. Les plus inquiets pour la sécurité pourront se tourner vers une solution encore plus sécurisée : le serveur SFTP inclus à openSSH qui permet d’émuler un serveur FTP en utilisant les commandes SCP et SSH2. Néanmoins, considérant que les échanges vont se faire entre deux machines de notre réseau local nous ne voyons pas l’intérêt d’alourdir la procédure en rajoutant cela (si vous souhaitez faire cela, tournez vous vers la première partie de la documentation). La plupart des FAI fournissant gratuitement un accès FTP il pourrait être tentant de l’utiliser, cela permettant de ne pas mobiliser de machine supplémentaire pour y faire fonctionner vsftpd. Dans ce cas, les données de GEPI vont transiter par Internet et il convient alors de les chiffrer. Mais très peu (voire aucun) de FAI fournissent un FTP supportant le cryptage. Nous ne pouvons donc que vous déconseiller cette solution. 3. Installation de backup-manager a) Prérequis Pour une fois nous n’allons pas installer ce paquet grâce à l’outil apt. En effet, la très grande stabilité de Debian est basée sur des tests rigoureux et donc longs des logiciels. De plus, une fois qu’une distribution de Debian est parue, les seules mises à jour de paquets autorisées sont celles relatives à la sécurité. Cela a pour conséquence de ne pas mettre à la disposition des utilisateurs les logiciels dans leurs versions les plus récentes, mais la stabilité est à ce prix ! Ainsi, à l’heure où j’écris ce document (12 août 2006), la version de backup-manager intégrée à Debian stable est 0.5.7-1. Or la prise en charge des bases MySQL, via mysqldump, n’est disponible qu’à partir de 0.5.9a. Cela sera sans doute réglé avec la publication de Debian GNU/Linux 4.0 prévue en décembre 2006, mais en attendant nous allons devoir compiler la dernière version stable de backup-manager. Il nous est donc nécessaire de disposer de make : apt-get install make Backup-manager nécessite que les paquets gettext et perl soient installés : apt-get install gettext perl Remarque : normalement perl est installé avec le système de base, il est donc normal que vous obteniez comme message « perl est déjà la plus récente version disponible. ». Enfin, backup-manager propose plusieurs possibilités de compression des données, notamment bzip2 qui est celle permettant le meilleur rendement : apt-get install bzip2 b) Installation de backup-manager Se plaçer dans le répertoire personnel de root : cd /root Sauvegarde automatique des données 10 / 13 Puis récupérer la dernière version stable de backup-manager (0.6.2 à l’heure où j’écris ces lignes) : wget http://www.backup-manager.org/download/backup-manager-0.6.2.tar.gz Décompresser les sources : tar -zxvf backup-manager-0.6.2.tar.gz Installer backup-manager : cd backup-manager-0.6.2 make install cp /usr/share/backup-manager/backup-manager.conf.tpl /etc/backup-manager.conf Enfin, supprimer les sources : cd .. && rm backup-manager-0.6.2.tar.gz && rm –rvf backup-manager-0.6.2 c) Configuration de backup-manager Toute la configuration se fait via le fichier /etc/backup-manager.conf : nano /etc/backup-manager.conf Ce fichier est très documenté, je vous laisse le soin de détailler les possibilités qui y sont offertes et je vous propose de l’éditer pour qu’il corresponde à celui ci-dessous : export export export export export export export export export export export export export export export export export export export export export export export export export export export export BM_REPOSITORY_ROOT="/var/archives" BM_REPOSITORY_SECURE="true" BM_REPOSITORY_USER="root" BM_REPOSITORY_GROUP="root" BM_ARCHIVE_TTL="15" BM_ARCHIVE_PURGEDUPS="true" BM_ARCHIVE_PREFIX="$HOSTNAME" BM_ARCHIVE_METHOD="tarball-incremental mysql" BM_TARBALL_NAMEFORMAT="short" BM_TARBALL_FILETYPE="tar.bz2" BM_TARBALL_DUMPSYMLINKS="false" BM_TARBALL_DIRECTORIES="chemin_complet_vers_le_code_gepi" BM_TARBALLINC_MASTERDATETYPE="weekly" BM_TARBALLINC_MASTERDATEVALUE="1" BM_MYSQL_DATABASES="base_mysql_gepi" BM_MYSQL_ADMINLOGIN="mgepuser" BM_MYSQL_ADMINPASS="mdp3" BM_MYSQL_HOST="localhost" BM_MYSQL_PORT="3306" BM_MYSQL_FILETYPE="bzip2" BM_UPLOAD_METHOD="ftp" BM_UPLOAD_FTP_USER="gepiftp" BM_UPLOAD_FTP_PASSWORD="ftppasswd" BM_UPLOAD_FTP_HOSTS="IP_srvsavgepi" BM_UPLOAD_FTP_PURGE="false" BM_UPLOAD_FTP_DESTINATION="/upload" BM_LOGGER="true" BM_LOGGER_FACILITY="user" d) Automatisation des sauvegardes Sauvegarde automatique des données 11 / 13 Nous allons gérer cela grâce à un script shell : nano /etc/backup-manager.sh #!/bin/sh test -x /usr/sbin/backup-manager || exit 0 /usr/sbin/backup-manager Régler ensuite les droits sur ce fichier : chmod 700 /etc/backup-manager.sh Automatiser le lancement du script à l’aide du démon cron : crontab -e Rajouter la ligne suivante pour que le script se lance tous les jours à 3h : 0 3 */1 * * /etc/backup-manager.sh Pour tester le fonctionnement, il suffit de lancer le script à la main : /etc/backup-manager.sh Puis de vérifier la présence des sauvegardes dans /var/archives et sur srvftp : Libre à vous de choisir la méthode que vous préférez. La première est notre préférée car elle est plus sécurisée vu que le transfert se fait via SSH et qu'elle n'installe aucun paquet supplémentaire sur le serveur. Elle est cependant plus complexe à appréhender que la seconde qui fait appel à des logiciels simples à configurer. Sauvegarde automatique des données 12 / 13 D.Pailler B.Castagnetto Document placé sous licence GFDL Sauvegarde automatique des données 13 / 13