Pour garantir la continuité du service et accès au site web en cas de soucis, une sauvegarde est effectuée tout les soirs via un script python.
- CentOS 8
- LAMP
- Base de donnée MariaDB
- Python 3.6.8
- Le dossier qui héberge les élements du site :
/var/www/html/wordpress
- CentOS8
- LFTP
- Dossier de sauvegarde wordpress :
/home/wordpress
Le programme se compose de 3 fichiers :
- wp_backup.py
- variables.json
- backupbdd.sh
Pour lancer le script :
./wp_backup.py -i variables.json
Le programme se déroule ainsi :
- Supprimer les anciens dossiers de sauvegardes en local et ne garder que les 5 derniers jours.
- Créer le nouveau dossier de sauvegarde avec la date du jour
- Exécuter un script shell qui :
- Sauvegarde de la base de donnée, en utilisant la commande 'wp' :
BddBackup.$(date +"%m-%d-%Y").sql
- Sauvegarder le dossier /var/www/html/wordpress et le compresser avec la date du jour :
WordpressBackup.$(date +"%m-%d-%Y").tar.gz
- Sauvegarde de la base de donnée, en utilisant la commande 'wp' :
- Envoie de la sauvegarde à un serveur FTP distant
- Fichier de log généré lors de l'exécution du script
log.txt
via crontab -l (on affiche la tâche planifiée à 5h30 tout les jours)
30 5 * * 1 ./path_to_script/wp_backup.py -i variables.json
Des fonctionnalités doivent être rajoutées au programme pour avoir une solution plus complète :
- Supprimer les vieilles sauvegarde de plus de 5 jours sur le serveur FTP.
- Ajouter une fonction pour vérifier l'intégrité des fichiers sauvegardés.
- Convertir l'appel au script shell en fonction python.
Toute contribution est la bienvenue.