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 :
- Création des deux fichiers
bdd.txt
etsite.txt
:- Liste des sites WordPress à sauvegarder :
echo -e "site1\nsite2\nsite3" > site.txt
- Liste des bases de données WordPress à sauvegarder :
voir cet article : https://memo-linux.com/installer-nextcloud-client-sur-un-serveur-debian/
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
chmod +x monscript.sh
crontab -e
- Par exemple exécuter le script tous les jours à 2 heures du matin :
0 2 * * * /home/fred/monscript.sh
artcile à rectifier en article
voir cet artcile : https://memo-linux.com/installer-nextcloud-client-sur-un-serveur-debian/