Le site est en ligne depuis 407 jours. 29 articles sont publiés / 38 commentaires au total.

Comment sauvegarder votre site automatiquement vers Google Drive (WordPress / Drupal …) ?

On est tous d’accord, les sauvegardes, c’est important. Malheureusement, la plupart des CMS ne disposent pas forcément de système de backups intégrés (WordPress / Drupal …)

C’est face à ce constat (et après quelques mésaventures, je vais être honnête), que je me suis résolu à créer un petit script BASH, couplé à une tâche CRON, qui va sauvegarder l’intégralité de mes sites, et les héberger directement dans Google Drive au format zip !

Nous allons voir dans ce pas-à-pas, comment configurer GDrive CLI, se connecter à un FTP distant pour récupérer tous vos sites, les compresser, et les envoyer directement dans le cloud !

1ère étape : Télécharger et configurer GDrive CLI

Gdrive CLI est un projet libre et gratuit, qui fournit une interface en ligne de commande pour interagir efficacement et sans UI avec votre compte Google Drive.

Commencez par télécharger le binaire depuis le repo Github.

Une fois le zip téléchargé. Créez un dossier dans lequel votre script de sauvegarde sera stocké. Et extrayez le zip à l’intérieur.

Il va maintenant falloir configurer GDrive CLI, en lançant un terminal à la racine de ce répertoire, et en tapant la ligne de commande suivante :

gdrive account add
Bash

Vous allez avoir besoin de vos renseigner vos credentials Google. Je vous recommande de suivre le tutoriel de Gdrive CLI officiel afin de les créer !

Une fois la commande lancée et les credentials renseignés, vous disposez maintenant d’un accès à votre Google Drive en ligne de commande, et tout est prêt pour passer à l’étape suivante : la création de notre script Bash !

2ème étape : Créer le script BASH de sauvegarde

Cette partie consiste à créer l’enchainement d’instruction qui va : Se connecter au serveur FTP stockant votre site > Télécharger une copie en local > La compresser en l’horodatant > La téléverser vers le Drive > Supprimer la copie locale.

Pour commencer, rendez-vous dans la racine de votre projet de sauvegarde, à côté du binaire « gdrive » de l’étape précédente, et créez un fichier backup.sh.

Vous allez pouvoir ensuite l’ouvrir avec votre IDE favoris, ou même un éditeur de texte classique (même Vim, pourquoi pas ^^), pour copier-coller le script suivant :

 #!/bin/sh
backup_dir=$(date +'%d%m%Y')

echo "[STARTING] Lancement de la sauvegarde, connexion au FTP"
wget -m --user=VOTREUSERFTP --password=VOTREMDPFTP ftp://www/

echo "[DONE] Récupération FTP terminée, compression de la sauvegarde locale ..."
zip -r backup_${backup_dir}.zip ./www/

echo "[DONE] Compression terminée, début de l'envoi vers Google Drive"
./gdrive upload backup_${backup_dir}.zip

echo "[DONE] Sauvegarde terminée, suppression de la copie locale"
rm -r ./www/
Bash

Le script pourrait se décomposer en 3 parties, à travers ces 3 commandes principales :

  • wget, nous utilisons cet utilitaire afin de nous connecter à votre serveur distant via FTP, et télécharger l’intégralité du répertoire www (à adapter en fonction de vos besoins)
  • zip, comme son nom l’identique, il nous permet de compresser le répertoire récupéré depuis le serveur, dans un fichier zip avec un nom horodaté (reprenant la valeur de la variable backup_dir déclarée en ligne 2)
  • gdrive, comme vous le savez, pour héberger directement la sauvegarde vers votre Google Drive

Il ne vous reste plus qu’à adapter ce code, avec vos propres identifiants, avant de l’exécuter et apprécier votre première sauvegarde 100% automatisée !

3ème étape : Planifiez vos sauvegardes avec CRON

Si vous voulez « pousser le vice au maximum », il est aussi possible de planifier le lancement de ce script de manière automatique, en prévoyant par exemple une sauvegarde tous les vendredi soir à 17h !

Pour cela, vous pouvez utiliser un magnifique outil, disponible et intégré nativement sur Linux : CRON

Cet utilitaire permet de rajouter des « tâches », ou « job », que vous désirez exécuter à un moment précis dans la journée, avec une certaine récurrence !

Voici un tutoriel rapide pour créer votre propre tâche CRON : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches

Limites et conclusion

Ce petit script vous fera (je l’espère) gagner du temps, et sécurisera vos backups, toutefois, il comporte des limites :

  • La base de données de votre site ne sera pas sauvegardée, il vous faudra le faire manuellement,
  • Un site de + de 10Go ne pourra pas être compressé dans un fichier ZIP (limitation du format de fichier)

En dehors de ces deux points, n’importe quelle structure de site pourra être sauvegardée, et c’est aussi ça qui fait la « force » de ce programme de backup 100% gratuit !

J’espère que cet article vous aura plu, si c’est le cas n’hésitez pas à le partager ou me le dire dans un petit commentaire !

3 commentaires

  1. Si jamais il y a aussi l’extension https://updraftplus.com/ qui le fait gratuitement et elle est vraiment pas mal

    • Oui en effet elle est top en plus !
      L’article était un peu plus orienté backup de n’importe quel site, mais en effet en question de plugin WP updraftplus.com est une bonne solution !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nouvel outil en ligne : Pomodoro Timer, optimisez votre temps et votre productivité
This is default text for notification bar