jeu 26 juin 2008 |
Sauvegardez !On ne le dira jamais assez : Sur internet c'est pareil : On n'est jamais à l'abri d'un crash de son hébergeur, d'une résiliation de contrat fortuite (je parle d'expérience) ou d'une mauvaise manip (un "rm -rf *" est si vite arrivé). Depuis que je me suis fait avoir, et que je suis allé fouiller le cache de Google pour retrouver une partie de mes articles, je fais un backup journalier de mon site. La vieille méthodePour le site en lui même c'est facile : rsync et cron font très bien l'affaire. Par contre, pour le contenu du blog, planqué dans ces satanées tables MySQL, c'est une autre paire de manches. Les solutions existantes (des plugins WordPress essentiellement) permettent de faire des backups (entendez des dump) de la base MySQL. Mais ce n'est pas facile à automatiser et c'est toujours la galère à réinstaller : Des problèmes d'encodage de caractères, des incompatibité de version de MySQL... Le renouveau: WXRDepuis quelques versions déjà, WordPress propose quelque chose de bien plus intéressant: L'export en WXR. C'est une sorte de RSS sous hormones, spécifique à Wordpress, qui contient toute le contenu d'un blog : Posts, commentaires, balises méta, catégories .... J'ai eu l'occasion de l'essayer pour mettre à jour ma version de WordPress (pas pour le plaisir hein, par nécessité, des spammers ayant profité d'une faille de WP pour y injecter des spams, ... sympa ...) , et je dois dire que ça marche à merveille. L'import/export est vraiment simplissime d'utilisation. J'ai donc décidé d'utiliser ce fichier XML pour mon backup, plutôt que de faire un dump SQL barbare. Seul bémol, le panneau d'administration de WordPress ne permet pas de programmer des backup réguliers et automatiques, avec envoi du backup par mail. Le scriptQu'à cela ne tienne, wget est notre ami. wget un outil qui permet de scripter des requêtes HTTP. Il est assez puissant pour permettre de simuler une connection à Wordpress, enregister des cookies et les réutiliser pour récupérer le backup. Tout ça, en shell. Pour mettre en place cette solution de backup, vous aurez besoin de :
Voici le script, à copier / coller dans un fichier .sh de votre choix : #! /bin/bash # Settings BACKUP_DIR=[your backup dir] URL=[URL of the wordpress blog] USER=[admin login] PASS=[admin password] COOKIES_FILE=/tmp/wp-backup.cookies # Compute some aliases DATE=`date +%Y-%m-%d` BACKUP_FILE=$BACKUP_DIR/wp-backup-$DATE.xml # Authentication wget --keep-session-cookies --save-cookies $COOKIES_FILE --post-data "log=$USER&pwd=$PASS&wp-submit=Connexion&testcookie=1" -O /dev/null "$URL/wp-login.php" > /dev/null # Get the 'export' xml file wget -O $BACKUP_FILE --load-cookies $COOKIES_FILE "$URL/wp-admin/export.php?author=all&submit=1&download=true" Modifiez les champs de la section settings et glissez ce script dans /etc/cron.daily/ (ou bien configurez une tâche anacron, si vous êtes plutôt un écolonome et que votre machine ne tourne pas 24/7). |
||






Catégories
Chronologie

Derniers billets
Recherche
Archives
Blogroll

Web deux zéro

jeu 26 juin 2008
Commentaires (3)

Je suis récemment tombé sur le phénomène de 

3 commentaire(s)
Ca avait l’air sympa … mais dans le fichier xml, c’est en fait le html du formulaire d’authentification.
Et oui, je suis sur de mon user/passwd
Sur quelle version de Wordpress ca marche ?
@Fabien:
J’utilise la version 2.5.1,
Ca marche bien chez moi.
Si tu utilises une version plus récente, la page de login a peut être changé.
Essaie d’adapter les “post-data” en regardant comment ta page de login est construite. Tu peux aussi espionner les requetes HTTP pour voir quels sont les champs POST qui sont effectivement envoyés.
Si tu trouves quelque chose, merci de le faire partager.
Coucou,
effectivement ça ne marche pas avec les 2.7.x
il y a une solution?
++
Ajouter un commentaire