Rép. : [Spip] sauvegardes automatisées

Je pense tout a fait comme Antoine à une petite nuance près.
Si tu as un serveur de sauvegardes (capable de verifier les fichiers modifiés et ne sauvegarder que ceux la), c’est le top mais je suis pas sur que tu en aies un.
Moi, pour des raisons de simplifications, j’aurais fait une cron qui copie tout ton dossier spip, et qui copie tout ton dossier de base MySQL(.MYD,.MYI,.FRM) mais ca n’engage que moi.

Par contre c’est vrai ce que dit Antoine : si tu laisses la sauvegarde sur le disque et que tu as un crash disque … ben dommage.

  • Ludo.

Antoine antoine@pitrou.net 26/05/2004 01:31:03 >>>
Le mar 25/05/2004 à 23:35, Paolo a écrit :
Quand on a un site « en production » (j’espère bien d’y arriver un jour avant
la fin de l’année…), quelles sont les possibilités de faire une sauvegarde
quotidienne automatisée?

Est-il possible en quelque sort d’automatiser la sauvegarde de SPIP?

Non, pour l’instant ce serait trop périlleux (il faudrait vérifier que
la sauvegarde s’est bien faite et n’a pas heurté un timeout PHP…
bref). Si tu as accès au serveur, tu peux faire une sauvegarde mysql
directement en utilisant le programme « mysqldump », et aussi un « tar czf »
du répertoire IMG.

Note toutefois qu’une sauvegarde automatique n’a absolument aucun sens
si tu ne prends pas la peine ensuite de la transférer sur un support
autre que le disque dur de l’hébergeur (CD-Rom, bande magnétique, disque
dur séparé, que sais-je…).

Amicalement

Antoine.


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

"Ludovic wrote:
Si tu as un serveur de sauvegardes (capable de verifier les fichiers
modifiés et ne sauvegarder que ceux la), c'est le top mais je suis pas sur
que tu en aies un. Moi, pour des raisons de simplifications, j'aurais fait
une cron qui copie tout ton dossier spip, et qui copie tout ton dossier de
base MySQL(.MYD,.MYI,.FRM)
- - -

Ludovic,
Merci pour ces idées. Je pense qu'il faudrait une petite consultation avec
notre hébergeur...

Paolo

Paolo wrote:

"Ludovic wrote:
Si tu as un serveur de sauvegardes (capable de verifier les fichiers
modifiés et ne sauvegarder que ceux la), c'est le top mais je suis pas sur
que tu en aies un. Moi, pour des raisons de simplifications, j'aurais fait
une cron qui copie tout ton dossier spip, et qui copie tout ton dossier de
base MySQL(.MYD,.MYI,.FRM)
- - -

Ludovic,
Merci pour ces idées. Je pense qu'il faudrait une petite consultation avec
notre hébergeur...

Pour ma part, j'ai fais un petit script (python) local sur ma machine qui fait un backup de la base (le fichier xml genere par spip) ainsi que de l'espace IMG (la c'est un wget).

  Yannick

--
  _/ Yannick Patois _________________ Address (home) __________________
| irc(undernet): Garp on #france25+ | 9bis, Rue de Lyon |
| http://garp.feelingsurfer.net/ | 01630 Saint Genis Pouilly |
| Tel-home: +33 (0)4 50 20 33 28 | FRANCE |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |

"Yannick Patois" wrote:
Pour ma part, j'ai fais un petit script (python) local sur ma machine
qui fait un backup de la base (le fichier xml genere par spip) ainsi que
de l'espace IMG (la c'est un wget).

- - -

Yannick,
De quoi est-ce qu'on a besoin chez l'h'ebergeur pour avoir ça ?
Peut-on le faire sur un serveur mutualisé ?
Penses-tu mettre ce script sur spip-contrib ?

stp excusez tant de questions!
Paolo

Le mer 26/05/2004 à 10:58, Paolo a écrit :

"Ludovic wrote:
Si tu as un serveur de sauvegardes (capable de verifier les fichiers
modifiés et ne sauvegarder que ceux la), c'est le top mais je suis pas sur
que tu en aies un. Moi, pour des raisons de simplifications, j'aurais fait
une cron qui copie tout ton dossier spip, et qui copie tout ton dossier de
base MySQL(.MYD,.MYI,.FRM)

Et c'est à proscrire absolument. Si la base de données est modifiée
pendant que tu copies le dossier qui la contient, ta sauvegarde sera
corrompue et ton site ne fonctionnera plus le jour où tu essaieras de la
restaurer.

Il faut absolument passer par les outils dédiés à MySQL (soit mysqldump,
soit phpMyAdmin ou SPIP bien sûr).

Amicalement

Antoine.

Il faut absolument passer par les outils dédiés à MySQL (soit mysqldump,
soit phpMyAdmin ou SPIP bien sûr).

On pourrait peut-être imaginer, en contrib ou en standard, un truc qui
vérifie qu'on est admin + mot de passe défini dans un fichier déposé dans
ecrire/data/ ; et qui renverrait un dump SQL de la base (sauf les tables
d'indexation). Et un autre qui renverrait les documents "créés ou modifiés
depuis la denière sauvegarde".

La sauvegarde via SPIP est vraiment très peu efficiente, car elle analyse
les données, et du coup elle explose, sur un gros site.

Ce n'est jamais qu'un chantier de plus :slight_smile:

-- Fil

Paolo wrote:

"Yannick Patois" wrote:
Pour ma part, j'ai fais un petit script (python) local sur ma machine
qui fait un backup de la base (le fichier xml genere par spip) ainsi que
de l'espace IMG (la c'est un wget).

De quoi est-ce qu'on a besoin chez l'h'ebergeur pour avoir ça ?

Rien du tout, ca passe par l'interface standard de spip.

Peut-on le faire sur un serveur mutualisé ?

Donc oui.

Par contre, le systeme client doit etre de type unix (c'est peut etre generalisable, mais je ne connais pas trop les autres systemes), avoir python (evidemment) et wget.

Penses-tu mettre ce script sur spip-contrib ?

A vrais dire, je ne suis pas sur que ca puisse servir a une autre personne que moi.
Si y'a un autre utilisateur dans le monde, je le ferai, promis :slight_smile:
Pour le moment, je l'ai mis ici:
http://expace.lautre.net/spip_backup.py

  Yannick

--
  _/ Yannick Patois _________________ Address (home) __________________
| irc(undernet): Garp on #france25+ | 9bis, Rue de Lyon |
| http://garp.feelingsurfer.net/ | 01630 Saint Genis Pouilly |
| Tel-home: +33 (0)4 50 20 33 28 | FRANCE |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |

"Fil" wrote:
On pourrait peut-être imaginer, en contrib ou en standard, un truc qui
vérifie qu'on est admin + mot de passe défini dans un fichier déposé dans
ecrire/data/ ; et qui renverrait un dump SQL de la base (sauf les tables
d'indexation). Et un autre qui renverrait les documents "créés ou modifiés
depuis la denière sauvegarde".

- - - -

Ça serait évidemment magnifique.
Paolo

Bonsoir,

voilà un script que j'utilise pour sauvegarder en un unique fichier
tant mes données que mes fichiers :

  http://www.gasteroprod.com/data/spipDump.zip

Je l'utilise avec succès chez Ouvaton, ça doit marcher ailleurs sans
trop de soucis.

Ce script utilise les composants PEAR::DB et PEAR::Archive_Tar

Placez le script à la racine de votre SPIP, et faites en la
configuration avant de le lancer :

// Save options
define('SAVE_DATABASE', true);
define('SAVE_FILES', true);

-> pour sauver la base ET/OU les fichiers

// Directory where the files will be created
define('DIRECTORY', 'sauvegardes');

-> répertoire à la racine

// Number of archives to keep (0 for all)
define('ARCHIVES_NUMBER', 2);

-> nombre de fichiers d'archive à conserver.
   attention, si vous mettez 0 pour tous les garder, à ne pas exploser
   votre espace disque ... :wink:

// Database connection parameters
define('BASE_HOST', 'localhost');
define('BASE_NAME', 'spip');
define('BASE_USERNAME', 'root');
define('BASE_USERPASS', '');

-> paramètres d'accès à la base, classique

// Trace level (0 : none, 1 : main actions, 2 : all actions)
define('TRACE_LEVEL', 2);

-> niveau de détail de l'affichage de l'avancement

Je précise que cela prend plus ou moins de temps selon la quantité de
données que vous avez, donc ça peut planter si le temps maximum
d'exécution de votre PHP est trop bas.

Vu que ça utilise des composants PEAR, ça peut difficilement être
repris tel quel dans SPIP, mais je pense que l'adapter pour l'ajouter
dans SPIP rendrait service à beaucoup de monde.

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

http://www.gasteroprod.com/data/spipDump.zip

Oups, si vous l'avez déjà téléchargé, recommencez, ce n'était pas la
bonne version qui était en ligne ... :frowning:

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

"Nicolas Hoizey" wrote:
Oups, si vous l'avez déjà téléchargé, recommencez,

- - - -

Non ...pas encore. Mais je ne vais pas manquer de l'essayer.
(Les serveurs mutualisés ont PEAR ? Ou faut-il juste essayer et puis si cela
ne marche pas on sait qu'il ne l'a pas?)

merci,
Paolo

(Les serveurs mutualisés ont PEAR ? Ou faut-il juste essayer et puis
si cela ne marche pas on sait qu'il ne l'a pas?)

Sur Ouvaton, il y a à la racine de chaque arborescence de domaine un
répertoire "php-include" qui est dans l'include_path de PHP.

On peut donc y placer l'arborescence de composants PEAR nécessaires.

Je crois que chez Online, il y a aussi un répertoire, mais qui se
nomme tout simplement "include". Chez les autres, je ne sais pas.

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

  http://www.gasteroprod.com/data/spipDump.zip

Oui, c'est un script indépendant de SPIP, mais en effet ça n'est pas bien
sorcier : on liste les tables, et on en sauve le contenu au format SQL.

// Database connection parameters
define('BASE_HOST', 'localhost');
define('BASE_NAME', 'spip');

à remplacer par include_ecrire('inc_connect.php3');

// Trace level (0 : none, 1 : main actions, 2 : all actions)
define('TRACE_LEVEL', 2);

à remplacer par spip_log()

Il faudrait aussi éviter de sauver les tables d'indexation, et penser à
sauvegarder les images (quoique, en local, ça n'a guère d'intérêt).

-- Fil

http://www.gasteroprod.com/data/spipDump.zip

Oui, c'est un script indépendant de SPIP, mais en effet ça n'est pas
bien sorcier : on liste les tables, et on en sauve le contenu au
format SQL.

Voilà ... sans oublier le répertoire IMG ...

// Database connection parameters
define('BASE_HOST', 'localhost');
define('BASE_NAME', 'spip');

à remplacer par include_ecrire('inc_connect.php3');

Oui.

// Trace level (0 : none, 1 : main actions, 2 : all actions)
define('TRACE_LEVEL', 2);

à remplacer par spip_log()

Aussi, sauf si on veut une interface visuelle pour l'avancement.

Il faudrait aussi éviter de sauver les tables d'indexation

C'est le cas.

et penser à sauvegarder les images

C'est aussi le cas.

(quoique, en local, ça n'a guère d'intérêt).

Il faudrait pouvoir appeler ce script à distance et ainsi provoquer
ensuite un transfert, que ce soit en HTTP, FTP ou SMTP ...

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

Chez SIVIT ça ne marche pas (Erreur ligne 30 sur
require_once 'DB.php':wink:

Le Wednesday 26 May 2004 04:30 pm, Nicolas Hoizey a écrit :

> (Les serveurs mutualisés ont PEAR ? Ou faut-il juste essayer et puis
> si cela ne marche pas on sait qu'il ne l'a pas?)

Sur Ouvaton, il y a à la racine de chaque arborescence de domaine un
répertoire "php-include" qui est dans l'include_path de PHP.

On peut donc y placer l'arborescence de composants PEAR nécessaires.

Je crois que chez Online, il y a aussi un répertoire, mais qui se
nomme tout simplement "include". Chez les autres, je ne sais pas.

-Nicolas

Chez SIVIT ça ne marche pas (Erreur ligne 30 sur require_once
'DB.php':wink:

Tu n'as sans doute pas PEAR::DB de disponible ...

Soit SIVIT peut le mettre à disposition de tous ses clients, soit
chacun peut l'installer lui-même, à voir ...

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

http://www.gasteroprod.com/data/spipDump.zip

Histoire d'en profiter pour découvrir le package PEAR::HTML_Progress
de Laurent Laville (un spipeur), j'ai bricolé hier soir une nouvelle
version :

  http://www.gasteroprod.com/data/spipDump2.zip

Voilà un apperçu de ce que ça donne :

  http://www.gasteroprod.com/data/spipDump2.png

Les packages PEAR nécessaires sont donc maintenant DB, Archive_Tar,
HTML_Progress et Log (dépendance de HTML_Progress). Un zip de
l'arborescence de ces packages à jour est là :

  http://www.gasteroprod.com/data/spipDump2_PEAR.zip

Amusez-vous bien ... :wink:

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

"Nicolas Hoizey" wrote:

http://www.gasteroprod.com/data/spipDump2.zip
Amusez-vous bien ...

- - - -

Merci beaucoup. Ça marche ! Quelques questions si tu (ou quelqu'un) a le
temps:

1) La sauvegarde des tableaux MySQL marche, mais non pas celle des fichiers.
Est-ce que c'est parce que j'ai placé le tout dans un sous-répertoire?

2) Est-ce que les fichiers .sql de la sauvegarde sont aussi résistants UTF-8
(c'est à dire pouvant contenir toutes sortes de langues) que les fichiers
.xml de Spip?

3) De la base de données je veux sauvegarder juste les tableaux avec le
préfixe "spip_", non pas les autres tableaux qui s'y trouvent. Comment au
mieux indiquer cela?

4) Y a-t-il des fichiers de
http://www.gasteroprod.com/data/spipDump2_PEAR.zip
qui ne sont pas nécessaires? /CVS ?

5)

Il faudrait pouvoir appeler ce script à distance et ainsi provoquer
ensuite un transfert, que ce soit en HTTP, FTP ou SMTP ...

En effet. Tu fais cela déjà? Comment s'y prendre.

merci, Paolo

1) La sauvegarde des tableaux MySQL marche, mais non pas celle des
fichiers. Est-ce que c'est parce que j'ai placé le tout dans un
sous-répertoire?

Il cherche à sauver un répertoire "IMG" se trouvant au même endroit
que lui.

2) Est-ce que les fichiers .sql de la sauvegarde sont aussi
résistants UTF-8 (c'est à dire pouvant contenir toutes sortes de
langues) que les fichiers .xml de Spip?

Pas testé, mais bonne question.

3) De la base de données je veux sauvegarder juste les tableaux avec
le préfixe "spip_", non pas les autres tableaux qui s'y trouvent.
Comment au mieux indiquer cela?

Ajouter un test dans la boucle sur la liste des tables, tout
simplement.

4) Y a-t-il des fichiers de
http://www.gasteroprod.com/data/spipDump2_PEAR.zip qui ne sont pas
nécessaires? /CVS ?

Oui, sans doute, notamment les autres drivers de DB que MySQL et les
tests des différents packages. C'est ce qui est installé par la
commande pear, je n'ai pas nettoyé.

5)

Il faudrait pouvoir appeler ce script à distance et ainsi provoquer
ensuite un transfert, que ce soit en HTTP, FTP ou SMTP ...

En effet. Tu fais cela déjà? Comment s'y prendre.

Je ne le fais pas encore non, mais j'y pense, à voir pour une v3...

-Nicolas

--
Nicolas "Brush" HOIZEY
  Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
         Clever Age http://www.clever-age.com

Nicolas Hoizey wrote:

Il cherche à sauver un répertoire "IMG" se trouvant au même
endroit que lui.

OK, j'ai trouvé. merci.

Ajouter un test dans la boucle sur la liste des tables,
tout simplement.

Je suis arrivé à faire cela aussi.

Est-ce que les fichiers .sql de la sauvegarde sont aussi
résistants UTF-8 (c'est à dire pouvant contenir toutes sortes de
langues) que les fichiers .xml de Spip?

Pas testé, mais bonne question.

Je voulais essayer de tester cela. Mais pour l'instant je reçois des erreurs
pour n'importe quel fichier que j'essaye de réimporter. Je fais cela en
collant le texte du fichier dans la fenêtre SQL de phpMyAdmin. Peut-être
s'agit-il de faire autrement?

Je ne le fais pas encore non, mais j'y pense, à voir pour une v3...

Magnifique !

Paolo