Sauvegardez !
On ne le dira jamais assez :
Sauvegardez !
Perdre un an de boulot parce qu'on fait trop confiance à son disque dur, c'est à se bouffer les c....
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éthode
Pour 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: WXR
Depuis 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 script
Qu'à 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 :
- Un blog tournant sous Wordpress
- Un système Linux, BSD ou Unix like, un Cygwin à la rigueur, tournant sur votre machine perso.
- wget
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).
Voilà, vos backup arriveront tout chauds, chaque jour, sur votre bécane.
|
Aucun commentaire
Ajouter un commentaire