Les gens ont plusieurs serveurs privés virtuels pour diverses raisons. Vous pouvez essayer différentes distributions Linux sur différents serveurs. J’ai moi-même 4 VPS situés à travers le monde. Dans ce tutoriel, je vais vous montrer comment sauvegarder vos sites WordPress entre vos serveurs.
Didacticiel vidéo:
Faites une sauvegarde de votre base de données
La première chose à faire est de sauvegarder votre base de données WordPress. Elle contient vos articles, vos pages, vos informations utilisateur, les paramètres du site, etc. Vous pouvez sauvegarder toutes vos bases de données avec la commande suivante,
mysqldump -u root --password=root-password --all-databases --master-data | gzip > all-databases.sql.gz
root-password est le mot de passe de l’utilisateur root de la base de données, et non le mot de passe root de votre serveur Linux. La commande ci-dessus va sauvegarder toutes vos bases de données dans le serveur de base de données MariaDB ou MySQL et les enregistrer dans un fichier nommé all-databases.sql.gz. Vous pouvez nommer ce fichier à votre convenance.
Sauvegarde des fichiers du site WordPress
Ceci peut être fait en utilisant la commande ci-dessous :
tar -cpzf site-files.tar.gz /path/to/your/web/root
Les racines web courantes sont /usr/share/nginx/html/, /var/www/html/. Cette commande sauvegardera tous les fichiers de votre site WordPress, c’est-à-dire le programme WordPress, le fichier du thème, vos images téléchargées, les plugins, etc. et les enregistrera dans un fichier nommé site-files.tar.gz. Encore une fois, vous pouvez le nommer à votre guise.
Envoyer des fichiers de sauvegarde à un serveur distant
Vous pouvez utiliser l’utilitaire de ligne de commande scp (secure copy) pour ce faire.
scp all-databases.sql.gz site-files.tar.gz nom_du_serveur_distant_ip:/home/nom_d_utilisateur
scp utilise le protocole ssh pour se connecter à votre serveur distant et lui envoyer les fichiers précédemment sauvegardés. Vous devez entrer le mot de passe de l’utilisateur distant. La commande ci-dessus enregistrera les sauvegardes dans le répertoire personnel de l’utilisateur distant.
Comment automatiser votre processus de sauvegarde
Créez d’abord une tâche cron avec la commande suivante
crontab -e
Cela va ouvrir votre fichier de travail cron. Mettez le texte suivant dedans.
0 4 * * * mysqldump -u root --password=root-password --all-databases --master-data | gzip > all-databases.sql.gz && tar -cpzf site-files.tar.gz /path/to/your/web/root
Enregistrez le fichier. La première partie 0 4 * * * signifie que la commande ci-dessus sera exécutée automatiquement à 4 heures du matin (0 4) chaque jour (le premier astérisque) chaque semaine (le deuxième astérisque) chaque mois (le troisième astérisque). La double esperluette (&&) signifie que la commande suivante ne sera exécutée que lorsque la commande précédente aura été exécutée avec succès.
Vous pouvez également configurer la commande pour qu’elle soit exécutée toutes les deux heures, il suffit de changer la première partie 0 4 * * * en 0 2/** * *.
La tâche cron ci-dessus ne fait que sauvegarder votre WordPress sur le serveur local, nous devons envoyer nos sauvegardes au serveur distant. En utilisant la commande scp, comme nous l’avons vu précédemment, vous devez entrer le mot de passe de l’utilisateur du serveur distant. Ce n’est pas automatique. Ce que nous pouvons faire, c’est mettre en place une connexion ssh sans mot de passe entre vos serveurs afin que vous n’ayez pas à saisir de mot de passe lors de l’envoi des sauvegardes.
C’est une bonne idée de définir la variable MAILTO dans le fichier cron comme ceci :
MAILTO=votre_[email
Vous disposez maintenant de plusieurs copies de votre site WordPress sur vos serveurs. Si un serveur tombe en panne ou que le disque dur se bloque, vous pouvez rapidement remettre votre site en service en restaurant les bases de données et les fichiers du site sur un autre serveur et faire pointer vos enregistrements DNS vers ce serveur.