SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Administration > Sauvegardes > Saveauto

Le plugin saveauto : sauvegarde automatique de la base de données de SPIP

lundi 27 novembre 2006, par cy_altern. Dernier ajout vendredi 16 mars 2007


Le plugin saveauto permet de réaliser automatiquement une sauvegarde de la base de données de SPIP selon une fréquence et des paramètres configurables.


Un des soucis récurrent du webmestre d’un site sous SPIP c’est d’avoir la certitude qu’en cas de "crash" de son site (serveur planté, mauvaise manip...) il puisse récupérer l’ensemble des données de la base MySQL afin de pouvoir rétablir son site "à l’identique".

Cela implique d’avoir une sauvegarde de cette base de données qui inclut tous les éléments saisis par les utilisateurs (articles, brèves, sites référencés, auteurs...) au fur et à mesure que ceux-ci enrichissent le contenu du site.

Alors si votre site est actif, à moins que vous ne soyez un forcené de la sauvegarde manuelle en utilisant l’outil intégré dans l’administration de SPIP, il y a fortes chances que votre dernière sauvegarde ne soit pas à jour...

Ce plugin, reprise d’une "vieille" contrib de Silicium (publiée à l’époque sur le site japanim.net), permet d’automatiser le processus de sauvegarde de votre base de données afin que vous n’ayez jamais à annoncer à vos rédacteurs que "...le serveur à planté, il va falloir refaire la saisie de vos n derniers articles...".

1. Ce plugin permet :

  • de réaliser une sauvegarde complète de la base de données du SPIP selon une fréquence déterminée. Cette sauvegarde est au format .sql (ou gzippé si votre serveur le permet). Elle est totalement compatible avec le format des fichiers sql utilisés par votre phpmyadmin.
  • de paramétrer les tables à sauvegarder (ou au contraire à ne pas sauvegarder) : la sauvegarde étant réalisée au niveau de la base, par défaut elle comprend l’ensemble des tables (pas seulement celles de SPIP) mais vous pouvez configurer précisément les tables que vous désirez inclure dedans.
  • de stocker ces sauvegardes dans un répertoire de votre choix
  • d’envoyer les fichier de sauvegarde par mail à une adresse de votre choix
  • de configurer la "durée de vie" des fichiers de sauvegarde stockés

2. Installation du plugin saveauto :

Ce plugin existe en 2 version : saveauto_1_9_1 pour spip 1.9.1 et saveauto_1_9_2 pour spip 1.9.2.

En fonction de votre spip récupérez le zip correspondant sur http://zone.spip.org/files/spip-zone/, décompactez le et placez le dossier "saveauto_1_9_x" obtenu dans votre répertoire /plugins (à créer à la racine de votre spip si nécessaire), rendez vous sur l’interface de gestion des plugins (menu Configuration > Gestion des plugins), cochez le plugin "saveauto" et validez.

Vous devriez voir apparaître une icone supplémentaire dans le menu "Configuration" (administrateurs uniquement).

Ce plugin ne modifie pas les tables de la base données de SPIP, il n’en crée pas de nouvelles : pour sa désinstallation complète, il suffira d’effacer le répertoire /plugins/saveauto.

[ v. 1_9_1 ] Lorsque la configuration du plugin est modifiée (via l’interface d’administration) le fichier /plugins/saveauto/inc/saveauto_conf.php qui stocke le paramétrage des sauvegarde est réécrit : selon la configuration du serveur qui vous héberge, il sera peut être nécessaire de modifier ses droits afin que cette réécriture soit possible (en cas de problème vous en serez averti lors de la validation d’une nouvelle config par l’interface d’administration).

[ v. 1_9_2] L’enregistrement de la configuration et l’interface de gestion de celle-ci est basé sur le plugin config (cfg). Ce plugin doit être installé et activé pour que saveauto_1_9_2 fonctionne. Ce plugin permet la sérialisation des données de configuration et leur enregistrement dans la table spip_meta (de cette façon il n’est plus nécessaire de gérer un répertoire à accès en écriture pour le serveur comme le fait la version saveauto_1_9_1).

Pour l’instant pas d’incompatibilités repérées avec d’autres plugins (pas de surcharge des fichiers du core de spip).

3. Fonctionnement obtenu lorsque l’on intègre ce plugin :

Les sauvegardes ne sont PAS déclenchées par un "programmateur" (spip_cron) mais sont lancées lorsqu’un utilisateur (auteur ou administrateur selon le paramètre "Sauvegarde déclenchée lors de la connexion d’un auteur") se connecte dans l’espace privé. De cette façon tant qu’il n’y a pas d’accès à l’espace privé (cad que le contenu du SPIP ne change pas) il n’y a pas de création d’éventuels "doublons" des sauvegardes.

En revanche à chaque connexion à l’espace privé, le script est lancé : il vérifie si le temps écoulé depuis la dernière sauvegarde est supérieur à la fréquence déterminée dans la configuration (paramètre "Fréquence de la sauvegarde"), et , si c’est le cas, crée un nouveau fichier de sauvegarde dans le répertoire indiqué par le paramètre "Répertoire de stockage" de l’interface d’admin. Le fichier de sauvegarde est au format sql ou, si votre serveur le permet, il peut être compressé au format gz (paramètre "Compression GZ du fichier de sauvegarde").

Par défaut ces sauvegardes sont stockées dans le répertoire /ecrire/data de votre SPIP, si vous modifiez ce paramètre vous devez vous assurer que le répertoire utilisé est autorisé en écriture pour le serveur (777 avec votre client FTP en général) et que le chemin (relatif à la racine de votre spip) indiqué se termine bien par un "/" (par ex. : /spip/sauvegardes/).
Si vous utilisez un répertoire différent de celui par défaut, gardez à l’esprit que celui-ci devrait être sécurisé : les fichiers de sauvegardes contiennent l’ensemble des données des articles, rubriques, brèves publiés ou non (et là, pas question "d’accès restreint"...) [1]

Si la configuration le précise (paramètre "Sauvegardes envoyées à l’adresse") et si votre hébergement autorise la fonction mail() de php, le fichier de sauvegarde obtenu sera envoyé à l’adresse mail de votre choix.

En fonction du nombre de jours configuré dans le paramètre "Sauvegardes considérées obsolètes après", le script va effacer les fichiers de sauvegardes dont l’âge est supérieur au nombre de jours configuré.

Les tables à sauvegarder (ou non) sont déterminées par les paramètres "Tables acceptées" et "Données ignorées" : par défaut le plugin sauvegarde toutes les tables (y compris celles qui n’appartiennent pas à SPIP) sauf celles dont le nom comprend "_index", "_temp" ou "_cache" (qui sont utilisées par SPIP pour stocker des données volumineuses mais non-indispensables pour rétablir son intégrité : leur structure seule est sauvegardée).
De la même manière, le paramètre "Eléments à sauvegarder" permet de choisir (de façon globale) si vous voulez sauvegarder la structure et/ou les données des tables (option réservée aux administrateurs maitrisant ces concepts : si cela ne vous parle pas, choisissez "oui" pour les 2 choix proposés dans ce paramètre!).

Pour finir avec les options configurables vous pourrez également préciser :

  • le nom de la base de données de votre SPIP : ce paramètre ne sert qu’à composer le nom des fichiers de sauvegarde (par défaut de la forme : "nom_base_spip_2006"). De façon complémentaire le paramètre optionnel "Préfixe pour les sauvegardes" permet de composer des noms de fichiers encore plus complets : ce qui peut donner des noms de la forme "prefixe_nom_base_spip_2006".
  • si vous souhaitez qu’un message s’affiche lorsque la sauvegarde à été effectuée (à éviter si vous choisissez de faire déclencher la sauvegarde lors de la connexion des auteurs...)

4. Restauration des sauvegardes à partir des fichiers générés par le plugin :

[*Attention !!!*] les sauvegardes réalisées ne sont pas au format de celles de SPIP : Inutile d’essayer de les utiliser avec l’outil d’administration de Spip.

Pour toute restauration il faut utiliser l’interface phpmyadmin de votre serveur de base de données : dans l’onglet "SQL" utiliser le bouton "Emplacement du fichier texte" pour sélectionner le fichier de sauvegarde (cocher l’option "gzippé" si nécessaire) puis valider.

Les sauvegardes xxxx.gz ou xxx.sql contiennent un fichier au format SQL avec les commandes permettant d’effacer les tables existantes du SPIP et de les remplacer par les données archivées. Les données plus récentes que celles de la sauvegarde seront donc PERDUES !

5. Ce qu’il reste à faire :

  • la sauvegarde des données de la base est une chose, mais de plus en plus les sites sous SPIP ont toute une partie de leur contenu sous forme de fichiers "annexes" (images, pdf, sons, images...) qui sont stockés dans le répertoire /IMG : il serait donc intéressant d’avoir la possibilité de faire une sauvegarde de ceux-ci sous forme d’un fichier compressé qui serait transféré par FTP sur un autre serveur (je n’imagine pas l’envoi par mail vu le volume que cela représente !)
  • les fichiers de langues pour les utilisateurs ne causant pas le french

Comme pour beaucoup d’autres plugins, afin de faciliter le developpement collaboratif, vous trouverez l’ensemble des fichiers en cours sur le SVN de spip-zone : avis aux motivés !

Notes

[1] voir cet article pour la mise en place d’une protection par .htaccess : http://www.aix-mrs.iufm.fr/formatio... > onglet "applications" > partie II.c.


Répondre à cet article

  • Bonjour,

    Lors de la sauvegarde automatique, il me crée un fichier _2007_08_24.sql à la racine de mon site spip. Or, dans la configuration, je lui ai demandé de la sauvegardé dans le répertoire ’tmp’.

    Et dans ce répertoire, il ne me met que la verison compacté en GZ.

    Serait-il possible aussi de créer le fichier SQL dans le répertoire configuré ?

    merci d’avance

    Répondre à ce message

    Retour au début des forums

  • Le plugin saveauto : Mysql 5 ?

    20 août 2007 13:33, par rémi

    saveauto fonctionne t il avec Mysql 5 ?

    Répondre à ce message

    Retour au début des forums

  • Le plugin saveauto : sauvegarde automatique chez Free

    13 août 2007 09:21, par jean-pierre

    Bonjour, sur mon site /mathazay.free.fr/spip/> en 1.9.2, impossible de sauvegarder en compressé avec expédition par courriel, sur mon site /zaystedinfos.free.fr> en 1.8.3 pas de problème avec le script.... Comment pourrais-je modifier le greffon pour récupérer les possibilités du script avec Free ?

    Répondre à ce message

    Retour au début des forums

  • Bonjour, j’ai migré en 1.9.2 et j’ai toujours une page blanche à l’activation du greffon... une incompatibilité avec Free ? http://mathazay.free.fr/spip/

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Je penser bien qu’un jour j’allais devoir récupéré ma base grâce au plugin ; j’en profite pour vous remercier ceci est bien pratique.

    Mais voilà, je constate que tous les accents é, è etc, dans les Titres de rubrique et d’article sont remplacés des ??

    Je confirme que les textes des articles eux ne sont pas impactés

    Par contre le texte Description du site lui est aussi impacté par le phénoméne

    Personne d’autre n’a eu ce souci ?

    Cmment remedier au probléme ?

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Super pratique ce plugin. Un seul léger bémol, lorsque le fichier de sauvegarde m’est envoyé par email, je recois en même temps un autre email m’indiquant ceci :

    ----- The following addresses had permanent fatal errors -----

    <toto@truc.net>

    (reason : 554 <toto@truc.net> : Relay access denied)

    Un rapide grep dans les fichiers du plugin indique que l’envoi de cet email est bien lié au plugin. Comment s’en débarrasser ??

    Merci

    Répondre à ce message

    • C’est simplement que le test de la possibilité d’envoyer des mails par le serveur qui héberge ton spip est fait de la façon la plus basique : en essayant d’envoyer un mail à une adresse bidon (toto@truc.net)...

      Alors 2 solutions :

      • soit tu enlève ce test en supprimant le code correspondant :
        • fichier /saveauto/inc/saveauto_fonctions.php : ligne 28 à 31 à supprimer
        • fichier /saveauto/exec/saveauto_admin.php : ligne 175 remplacer

          if ($destinataire_save != ’’ AND !@mail(’toto@truc.net’, ’test envoi mail’, ’le message de test’))

          par

          if ($destinataire_save != ’’)

      • soit tu code un test de la config du serveur (pour détecter si il est possible d’envoyer des mails) qui n’utilise pas l’envoi d’un message : lorsque ça sera OK pour toi je l’intègre dans ce plugin...

      Bien évidemment ma préférence va à la deuxième solution ;-)

      Répondre à ce message

    Retour au début des forums

  • Bonjour,

    j’ai récupéré mes données grâce à ce script, encore merci !

    Mais j’ai tous les accents é, è etc, replacés par des ?? je récupère en ascii, en uft8 ce sont des caractéres illibles, cette fois ci j’ai retapé les caractères, mais pour la prochaine fois je voudrais savoir d’ou vient le pb ! Merci

    Répondre à ce message

    Retour au début des forums

  • Le plugin saveauto et gz

    15 décembre 2006 20:16, par DD

    Bonsoir, Ce plugin fonctionne bien (au moins pour l’install et la 1ère sauvegarde).

    Juste une question : en le configurant j’ai systématiquement le message : Attention : la sauvegarde ne pourra pas être compressée car cette fonctionnalité n’est pas disponible sur votre serveur (support de Zlib pas activé dans php.ini)

    cela m’étonnait donc j’ai été voir le phpinfo et voici ce qu’il dit : ZLib Support enabled

    Compiled Version 1.2.2

    Linked Version 1.2.2

    Directive Local Value Master Value

    zlib.output_compression Off Off

    zlib.output_compression_level -1 -1

    zlib.output_handler no value no value

    merci en tout cas catherine

    Répondre à ce message

    • Le plugin saveauto et gz 7 février 2007 00:13, par cy_altern

      pour que la génération "à la volée" des fichiers .gz soit possible, il faut l’option zlib.output_compression à On (voir : http://fr.php.net/manual/fr/ref.zlib.php pour plus de détails)

      Répondre à ce message

      • Le plugin saveauto et gz 12 février 2007 14:07, par Fil

        En fait, la génération de fichiers compressés peut se faire si les fonctions gzopen, gzwrite etc sont dispo, au lieu de tester zlib_get_coding_type(). J’ai modifié pour mon utilisation les fichiers saveauto_fonctions.php et saveauto_admin.php pour en tenir compte, dans la version pour spip 1.9.1.

        Dans saveauto_fonctions.php/saveauto_sauvegarde() (Vers 109) : $gz = $gz && function_exists(’gzopen’) ;

        Dans saveauto_admin.php/exec_saveauto_admin() (vers 142) : if ($gz && !function_exists(’gzopen’))

        De plus, pour bien réagir à l’ouverture, le nom du fichier gz doit etre ’.sql.gz’.

        Dans saveauto_fonctions.php/saveauto_sauvegarde() (Vers 160) : $nom_fichier = $prefixe_save . $base . "_" . $annee. "_" . $mois. "_" . $jour . ($gz ? ’.sql.gz’ : ’.sql’) ;

        Voir en ligne : http://id-crea.com

        Répondre à ce message

        • Le plugin saveauto et gz 7 mai 2007 12:06, par marabbeh

          Moi aussi, mon hébergeur (OVH) met lib.output_compression à Off, mais ça n’empêche pas de sauvegarder des bases compressées.

          J’ai modifié saveauto_1.9.2 en utilisant les indications de Fil. Ce serait pas mal que le plugin (1.9.1 et 1.9.2) soit mis à jour, car la compression n’est pas un luxe si on a une base assez grosse...

          Répondre à ce message

        • Le plugin saveauto et gz 8 juin 2007 12:50, par Jean-Pierre

          J’ai essayé la modification avec 1.9.1 chez Free, aussi
          - soit j’ai pas bien modifié (quand j’ai pas remplacer “abc” par “rst”, je me gourre,
          - soit la modif marche pas sous 1.9.1 (snip).

          Voir en ligne : Mathazay

          Répondre à ce message

    Retour au début des forums

  • Le plugin saveauto : fichier de sauvegarde > 2 Mo

    18 février 2007 16:21, par DomH

    Bonjour,

    Peut-être que je n’ai pas compris comment faire, mais ma base de donnée sauvegardée dépasse largement la taille fatidique admise des 2 Mo admise par MySql pour l’importation des fichiers .sql (compressé ou non) ?

    En gros comment faire une sauvegarde partitionnée des mes bases de données ?

    En remerciant les réalisateurs de ce plugin des plus utiles pour les désordonnés comme moi, qui oublient les sauvegardes régulières.

    Répondre à ce message

    • Le plugin saveauto : fichier de sauvegarde > 2 Mo 15 mars 2007 01:05, par cy_altern

      Cette limite ne s’applique pas lors de la création des fichiers de sauvegarde puisqu’il n’y à rien à importer dans cette étape (pour info j’utilise ce plugin pour des bases qui me donnent des fichiers sauvegardes jusqu’a 25 Mo...).

      En revanche c’est dans le cas d’une restauration par phpmyadmin à partir de ces fichiers > 2 Mo que se pose le problème... Et jusque là la seule solution simple est de "tronçonner" le fichier trop gros en fichiers < 2 Mo et de les envoyer les uns après les autres (pas très ergonomique mais une restauration à partir de sauvegardes est une opération peu fréquente !)

      Répondre à ce message

      • Le plugin saveauto : fichier de sauvegarde > 2 Mo 3 avril 2007 17:53, par livier

        Il y a une autre solution pour réinstaller la base de données à partir de fichiers de plus de Mo ... c’est de ne *pas* utiliser phpmyadmin.

        Cette soluce n’est pas accessible à tout le monde car il faut pouvoir intervenir en ligne de commande sur le serveur (généralement avec ssh). Mais pour ceux qui ont une base de donnée de plus de 2Mo, le choix d’un bon service d’hébergement avec cette possibilité se justifie peut être, même si ce n’est pas tout à fait gratuit.

        La commande ’mysql’ n’est pas limitée à 2Mo, elle passera toutes les commandes du fichier dans la base désigné :

        $ mysql dbname < fichiersql

        Répondre à ce message

    Retour au début des forums

  • Ca ne semble pas fonctionner avec Spip 1.9.2. J’ai eu la page de configuration, puis à la suite de la validation, page blanche.

    J’utilise encore l’outil de Japanim, (avec une petite correction car il faisait parfois de multiples sauvegardes quotidiennes) et il m’a permis de faire redémarrer un site après plantage de la base, avec seulement 24h de pertes de données. Donc ce plugin est bien venu.

    Reste évidemment le problème des documents à sauvegarder. Je ne sais pas par quel bout le prendre, car sur un site j’ai 250 Mo de données, ce qui me prend une heure à la main...

    Répondre à ce message

    • Pour l’instant ce plugin n’a pas encore été adapté pour spip 1.9.2 : en principe il doit pas y avoir grand chose à modifier mais là j’ai pas trop le temps...

      Si tu te sens de faire l’adaptation, pas de problème pour moi : soit tu bosse directement sur le SVN de la zone (svn ://zone.spip.org/spip-zone/_plugins_/_test_/saveauto) soit tu peux m’envoyer un zip avec les fichiers modifiés, je m’occuperais de la mise à jour sur spip-zone.

      Sinon, pour le problème de la sauvegarde des documents, c’est un sujet qui à déja été abordé plusieurs fois sur la liste de spip-zone et il y a plusieurs solutions envisageables (mirroir vers un autre serveur par FTP par ex).

      A priori la plus grosse difficulté en ce moment c’est de trouver quelqu’un qui ait le temps de s’en occuper... Alors une fois encoe, si tu veux t’investir là-dessus tu es le bienvenu et à coup sûr tu ne manquera pas de testeurs !

      Répondre à ce message

    • pour la récupération du dossier IMG sous Windows, j’utilise un outil externe à SPIP : syncback. Il permet de synchroniser un dossier de sauvegarde local avec le dossier IMG chez ton hébergeur via FTP.

      Tu peux planifier la périodicité des sauvegardes toujours avec le même outil.

      Ca fonctionne très bien.

      Répondre à ce message

    Retour au début des forums

  • envoi par mail ?

    23 mars 2007 11:38, par alex

    Bravo et merci pour ce super plugin... juste une petite difficuluté. La sauvegarde se fait très bien mais l’envoi par mail ne marche pas... cela aurait été pratique en cas de crash complet du serveur. quel peut etre le problème ? merci nb : la base fait 9 MO (une limite dans l’envoi des mails?)

    Voir en ligne : Le web des chercheurs de Dieu

    Répondre à ce message

    Retour au début des forums

  • Erreur... Fichier exec/cfg introuvable

    voilà ce que j’obtien ! pas génial. SPIP 1.9.2 [8782] QUelqu’un sait ce qui ne va pas ?

    Répondre à ce message

    Retour au début des forums

  • ça s’emballe !

    11 février 2007 16:01, par Chris

    Salut ! Super plugin que j’ai installé sur 3 sites... Problèmes sur un site, je reçois plusieurs savegardes par jours, et aujourd’hui, carrément 57 d’un coup !

    Une idée ?

    Liste des derniers plugins installés (qui correspondrait en date de début des problèmes) :
    - Squelette editeur
    - Target
    - En travaux Tiens... alors que j’ai désactivé le plug il y a 20 minutes, je viens de recevoir encore 6 sauvegardes...

    Répondre à ce message

    • ça s’emballe ! 11 février 2007 16:15, par Chris

      Oh oh... 27 sauvegardes sur un autre site, sur lequel il n’y a eu aucun ajout de plugin... Y aurait-il un rapport avec la date 11/02/07 ? étrange autant que bizarre...

      Répondre à ce message

    • ça s’emballe ! 17 mars 2007 21:10, par Jacques83300

      Bonjour,

      Je rencontre le même problème que Chris depuis que je suis passé sous Spip 1.9.2 : dès que je rentre dans la partie privée du site (administration), des sauvegardes sont exécutées en permanences et envoyées par mail. Cela s’arrête dès que je reviens dans la partie pubique du site. Ce matin j’ai installé la toute dernière version du plugin sans amélioration du problème.

      Si quelqu’un a une idée ?

      Liste des plugins installés :
      - Article_PDF
      - Barre Typo Enrichie Ecologique
      - Config
      - Crayons
      - Suivi des Forums
      - MailCrypt
      - Spip-listes
      - sauvegarde automatique

      Voir en ligne : http://www.varapiloisir.com

      Répondre à ce message

    Retour au début des forums

  • Super ce plugin,

    Un petit bug concernant la fréquence de sauvegarde (envois de mails à répétition).
    Le problème vient du tri par rsort($entree) ; pour les dates du 1er au 9 du mois ;
    je m’explique :
    Ma première sauvegarde date du 9 du mois donc le fichier :
    saveauto_nom_base_SPIP_2007_02_9.sql
    Mais ce fichier une fois comparé à saveauto_nom_base_SPIP_2007_02_14.sql (celle d’aujourd’hui) reste en première position avec rsort => éternel problème du tri alphanumérique

    La parade :
    ligne 157 fichier saveauto_fonctions.php remplacer
    $jour = date("j", $temps) ; //format numerique : 1->31
    par
    $jour = date("d", $temps) ; //format numerique : 01->31
    pour avoir les dates 01 02 ....

    Et renommer par ftp les fichiers :
    saveauto_nom_base_SPIP_2007_02_9.sql doit devenir saveauto_nom_base_SPIP_2007_02_09.sql pour éviter le spam involontaire.

    Encore merci pour ce super plugin.

    Répondre à ce message

    Retour au début des forums

0 | 25



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net