Backup complet de votre blog WordPress

Date: 29/04/2009 | Catégories: Blog,Open-source | Tags: ,,

J'imagine que vous faites des sauvegardes régulières de votre blog... Si ce n'est pas le cas, voici la méthode que j'utilise pour sauvegarder mon bébé.

Un blog WordPress est composé d'une base de donnée (SQL) et d'un ensemble de fichiers stockés sur un serveur (HTTP/FTP). Il faut donc penser à sauvegarder ces deux éléments.

Sauvegarde de la base de donnée

Le plus simple est d'utiliser le plugins WordPress DB Backup disponible ici. Il suffit ensuite de selectionner les tables à sauvegarder (le plus simple est de toutes les sélectionner) et de programmer backup automatique (toutes les heures, jours ou semaines). Le backup peut être stocké directement sur votre serveur (un peu risqué si celui-ci plante) ou envoyé sous la forme
d'une archive Sql.Gz sur une adresse mail.

Sauvegarde des fichiers

J'utilise un méthode automatique pour effectuer cette sauvegarde (sur ma machine Linux Ubuntu).

Après avoir installé l'utilitaire lftp (le meilleur client FTP en ligne de commande):

sudo apt-get install lftp

J'utilise la commande suivante:

lftp -f blog.lftp

Avec comme fichier blog.lftp:

[shell]

set ftp:list-options -a
set cmd:fail-exit true
set ftp:ssl-allow false
set ftp:passive-mode on
set net:timeout 10
set net:max-retries 2
set net:reconnect-interval-base 5
set net:reconnect-interval-multiplier 1

open -p 21 logindublog:passworddublog@ftpdublog.com
lcd ~/backup/blog/
mirror -e -x public_html/blog/avatars/

quit

[/shell]

Cette commande va:

  1. Ouvrir une connection FTP vers mon serveur ftpdublog.com en utilisant le login logindublog et le mot de passe passworddublog
  2. Faire un mirroir du répertoire /blog de mon serveur vers le répertoire local ~/backup/blog/ (à créer)
  3. Lors du mirroir, on supprime du répertoire local les fichiers qui n'existent plus sur le serveur
  4. On ne backup pas les avatars qui sont dans le répertoire public_html/blog/avatars/

La première sauvegarde risque de prendre un bon bout de temps (surtout si votre blog date un peu). Mais en suite, comme seul le différentiel entre votre serveur et votre répertoire local sera transféré cela ira beaucoup plus vite.

Pour automatiser le lancement de cette commande tout les jours à 1 heure du matin:

# crontab -e

1 0 * * * /usr/bin/lftp -f blog.lftp > /dev/null 2>&1

Et voila, vous pouvez attendre le crach de votre serveur hébergé de manière plus sereine...