0

Script de sauvegarde WordPress vers Nextcloud

Un petit script bash afin de sauvegarder différents sites WordPress vers un serveur Nexcloud.
Ce script est une actualisation de mon ancien, qui est toujours disponible à cette adresse :
https://memo-linux.com/script-de-sauvegarde-pour-blog-wordpress-vers-un-serveur-owncloud/

Ce script se base sur deux boucles while, qui vont lire chacune un fichier ou sera indiqué le nom des bases de données et le nom de chaque site à sauvegarder.

  • Préparation sur le serveur :
    • Création du répertoire de sauvegarde :
    • mkdir -p /home/fred/nextcloud/backup/
    • Installer le client Nextcloud :
    • voir cet artcile : https://memo-linux.com/installer-nextcloud-client-sur-un-serveur-debian/

    • Création des deux fichiers bdd.txt et site.txt :
      • Liste des sites WordPress à sauvegarder :
      • echo -e "site1\nsite2\nsite3" > site.txt
      • Liste des bases de données WordPress à sauvegarder :
      • echo -e "bdd1\nbdd2\nbdd3" > bdd.txt
    • Création du script :
      • Édition du script :
      • nano monscript.sh
      • Coller le code :
      • #!/bin/bash
        #
        ## Script bash de sauvegarde de blogs WordPress vers un serveur Nextcloud
        #
        ##Initialiser les variables
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
        user=USER_MariaDB
        mdp=MDP_USER_MariaDB
        backupdate=$(date +%Y-%m-%d)
        backupdir=/home/fred/nextcloud/backup/
        
        ##suppression des sauvegardes de bases de données vielles de +3 jours
        find  "$backupdir"/bdd -type f -mtime +3 -delete
        
        ##sauvegarde des bases de données compressées avec bzip2
        while read -r database
        do 
        mysqldump -u"$user" -p"$mdp" "$database" | bzip2 -c > "$backupdir"/bdd/"$database"_"$backupdate".sql.bz2
        done < bdd.txt
        
        ##rsync wordpress
        while read -r site
        do
        rsync -avz --progress --delete --exclude wp-content/cache/ --stats /var/www/"$site"/ "$backupdir"/"$site"/
        done < site.txt
        
        ##synchro vers nextcloud
        nextcloudcmd "$backupdir" https://User_Nextcloud:MDP_User_Nextcloud@nextcloud.domaine.tld/remote.php/webdav/
        ##une fois fini on s'envoie un mail avec la liste des bdd par exemple
        ls -1 "$backupdir"/bdd/ > /var/log/sauv_wp.log
        mail -s Sauv_WP user@domaine.tld < /var/log/sauv_wp.log
        

        Le script est disponible ici : https://gitlab.com/freddL/sauv_wordpress_to_nextcloud/blob/master/script.sh

      • Rendre le script exécutable :
      • chmod +x monscript.sh
      • Pour finir, ajouter une entrée dans le crontab afin d’exécuter le script tous les jours :
        crontab -e
        • Par exemple exécuter le script tous les jours à 2 heures du matin :
        • 0 2 * * * /home/fred/monscript.sh

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Laisser un commentaire

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