Quantcast
Viewing all articles
Browse latest Browse all 515

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://github.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

  • Viewing all articles
    Browse latest Browse all 515

    Trending Articles