Alexandre Carette Posted May 25, 2017 Share Posted May 25, 2017 (edited) Prérequis: Serveur ou se situe prestashop // Ubuntu 14.04 (serveur 1)Serveur de sauvegarde // Ubuntu 14.04Objectif: Obtenir 3 sauvegardes de la base SQL "prestashop": matin.sql midi.sql soir.sqlObtenir 1 sauvegarde de tout le dossier prestashop: presta.zipEnvoyer chaque jour un dossier Nom_du_jour_de_la_semaine_nom_du_site vers un serveur distant en ssh comprenant les fichiers SQL et le ZIP du prestashop Outils utilisés: zip mysqldump scp cronRésultat: Sur notre serveur de sauvegarde nous avons 7 dossiers (donc 7 sauvegardes) "Jour_de_la_semaine_nom_du_site" contenant 3 sql et un zip. Les sauvegardes sont écrasés selon le jourServeur à sauvegarderOn se met en root avec su #on installe zip apt-get install zip #on se place dans le home cd /home # on crée un répertoire qui va accueillir nos scripts mkdir scripts cd /home/scripts 0) Pour permettre l'envoie en SCP on crée une clef SSH ssh-keygen -t rsa On envoit la clef vers le serveur de sauvegarde ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip_du_serveur_de_sauvegarde On donne le mot de passe du root du serveur de sauvegarde 1) Création des scripts bashPour commencer on va créer 3 scripts bash nano sqldump-matin.sh #!/bin/bash # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier # En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici echo Sauvegarde base de donnée du matin # Database credentials # seul le root peut utiliser mysqldump user="root" password="password_du_root_sql" db_name="nom_de_la_base" # backup_path par defaut: var/www/html/prestashop backup_path="chemin_absolue_du_repertoire_de_prestashop" date="matin" # Set default file permissions umask 177 # Dump database into SQL file mysqldump --user=$user --password=$password $db_name > /$backup_path/$date.sql exit 0 ctrl + x -> save nano sqldump-midi.sh #!/bin/bash # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier # En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici echo Sauvegarde base de donnée du matin # Database credentials # seul le root peut utiliser mysqldump user="root" password="password_du_root_sql" db_name="nom_de_la_base" # backup_path par defaut: var/www/html/prestashop backup_path="chemin_absolue_du_repertoire_de_prestashop" date="midi" # Set default file permissions umask 177 # Dump database into SQL file mysqldump --user=$user --password=$password $db_name > /$backup_path/$date.sql exit 0 ctrl + x -> save nano sqldump-soir.sh #!/bin/bash # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier # En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici echo Sauvegarde base de donnée du matin # Database credentials # seul le root peut utiliser mysqldump user="root" password="password_du_root_sql" db_name="nom_de_la_base" # backup_path par defaut: var/www/html/prestashop backup_path="chemin_absolue_du_repertoire_de_prestashop" date="soir" # Set default file permissions umask 177 # Dump database into SQL file mysqldump --user=$user --password=$password $db_name > /$backup_path/$date.sql exit 0 ctrl + x -> saveOn rend les scripts sql executable chmod +x sqldump-matin.sh chmod +x sqldump-midi.sh chmod +x sqldump-soir.sh Les scripts de sauvegarde journalière de la base de donnée sont créeson crée un script qui va zipper le répertoire prestashop et envoyer le tout sur l'autre serveur nano backup-day.sh #!/bin/bash # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier # En règle générale, les "#" servent à mettre en commentaire le texte qui suit comme ici echo Sauvegarde de la journée # Database credentials site="nom_du_site" # backup_path par defaut: var/www/html/prestashop backup_path="chemin_absolue_du_repertoire_de_prestashop" date=`date +%A` ip="adresse_ip_du_serveur_distant" user="root" #on se met sur le bon repertoire cd /$backup_path #on crée un dossier au jour de la semaine mkdir $date"-"$site #on déplace les sauvegardes SQL mv matin.sql $date"-"$site mv midi.sql $date"-"$site mv soir.sql $date"-"$site #on zip le repertoire prestashop zip -r presta.zip /$backup_path #on déplace le zip dans le repertoire mv presta.zip $date"-"$site #on envoit le repertoire via scp vers le home/user du serveur de sauvegarde scp -r $date"-"$site $user@$ip:/home/user #on efface le repertoire du serveur 1 rm -r $date"-"$site echo Sauvegarde terminée exit 0 ctrl + x -> save chmod +x backup-day.sh 2) Création des tâches CRON crontab -e # Backup My SQL # m h dom mon dow command #sauvegarde du matin à 7h50 50 7 * * * /home/scripts/sqldump-matin.sh #sauvegarde du midi à 15h50 50 15 * * * /home/scripts/sqldump-midi.sh #sauvegarde du soir à 22H * 22 * * * /home/scripts/sqldump-soir.sh # Sauvegarde journalière à 23H15 15 23 * * * /home/scripts/backup-day.sh On rédemarre CRON service cron restart Edited May 25, 2017 by Alexandre Carette (see edit history) 2 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now