Dans notre série d’articles baptisés LSCI (La sauvegarde c’est important), nous vous avons déjà présenté pas mal de méthodes de sauvegarde. Ici, nous voulons vous présenter la méthode que nous utilisons pour sauvegarder ce site web. Dans ce tutoriel, nous allons donc voir comment sauvegarder son serveur web grâce à un script.

Nous passerons en revue toutes les parties de ce script pour vous donner des excplications au fur et à mesure de l’avancement du tuto.

Création du script

Dans cette première partie, nous débuter la création de notre script par la définition de nos variables. Ces variables serviront à ne pas avoir à définir certaines informations plus tard. Nous allons y définir toutes sortes de choses comme les chemins d’accès aux exécutables, le format de la date, les logins et mots de passe utilisés, le fichier de logs utilisé ainsi que les couleurs qui seront utilisées dans les fichiers de logs.

Nous allons maintenant créer la fonction qui permettra aux messages affichés sur l’écran et dans les logs de ressortir en couleur. Nous utiliserons une couleur différente pour chaque type de message.

Vérifions ensuite si tous les paquets nécessaires sont installés sur notre système. S’il ne le sont pas, le script les installera automatiquement.

Créons maintenant le dossier qui contiendra les logs d’exécution. Ici, le script va regarder si le dossier existe déjà. Si il n’est pas encore présent, il le créera.

Passons maintenant à la partie sauvegarde des dossiers contenant vos sites. Dans cette partie, nous allons d’abord créer le dossier qui contiendra les sauvegardes fichiers de nos sites webs. Ensuite, nous créons une boucle pour permettre de faire une archive par dossier se trouvant dans /var/www.

C’est maintenant aux bases de données d’être sauvegardées. Nous partons sur le même principe que pour les dossiers de nos sites.

La partie sauvegarde étant maintenant terminée, nous allons envoyer nos sauvegardes du jour vers un espace de stockage externe comme un FTP ou un stockage Cloud type Google Drive ou Amazon Drive. La première chose faire avant d’envoyer la sauvegarde est de vérifier elle sauvegarde existe. Ici, nous avons décidé les stocker sur Amazon Drive. A la fin de la copie, nous supprimons le backup du jour.

Voilà, le script étant expliqué, nous allons maintenant vous le livrer au complet pour une copie plus facile. Si vous décidez d’utiliser ce script il vous faudra installer Rclone pour connecter votre compte de stockage cloud ou alors modifier les lignes concernant l’envois des backups.

Présentation du script complet

Conclusion

Vous avez maintenant une façon de sauvegarder tous vos sites facilement avec un simple script. Nous trouvions aussi important de vous présenter la méthode que nous utilisons pour ce site.

Cofondateur du site. Passionné par la High-Tech, l'automobile et la photo. Utilisateur de produits Apple au quotidien, je reste ouvert aux autres marques pour égayer ma curiosité. N'hésitez pas à me suivre sur les différents réseaux sociaux!
  • Merci pour cet exemple. J’ai créé de nombreux scripts dont 1 pour la sauvegarde avec les mêmes outils mais je ne connaissais pas les fonctions et je vais donc reprendre l’idée de ‘do_showmsg’ pour mettre de la couleur dans l’exécution de mes scripts. Par contre les ‘>> ${returnlog}’ dans la fonction ne renvoient forcément jamais rien dans le sdout. Je les ai remplacés par ‘| tee ${returnlog}’.

    • Julien Doclot

      Ce remplacement est une bonne idée aussi. Je n’y avais pas pensé. Merci !

  • Salute,

    Ne le prends pas mal mais je trouve ton script extrêmement lourd :
    – Quel intérêt à toutes les variables *_bin ? En général on met directement le chemin
    – Les parties « Création du dossier s’il n’existe pas » ne servent à rien hormis alourdir le script énormément mkdir -p veut justement dire tu crées le dossier si il n’existe pas et tu ne fais rien si il existe déjà bref le reste c’est alourdir inutilement
    – Starting backup all websites at /bin/date +%d/%m/%Y, /bin/date +%H:%M:%Sn –> echo /bin/date '+%d/%m/%Y, %H:%M:%S'
    – [[ -z $(which lftp) ]] && apt-get install lftp au pire pourquoi ne pas faire un bête apt-get -y install lftp gzip…

    Tcho !

    • Julien Doclot

      Salut,

      Merci pour ton retour ! Je dois encore le retravailler un peu pour qu’il soit plus léger !

  • Juste pour tester « disqus » 🙂