Automatisation des sauvegardes d’une DMZ sous Debian ou Ubuntu
Automatisation des sauvegardes d’une DMZ sous Debian ou Ubuntu
Table des Matières
1 Principe de l’automatisation des sauvegardes
Dans un réseau informatique, le nerf de la guerre …. ce sont les sauvegardes. Les logiciels que nous utilisons dans la DMZ du lycée sont codés en php / MySql.
Je montrerai dans un premier temps comment automatiser les sauvegardes des bases de données MySql sur un autre serveur, et dans un deuxième temps comment avoir une deuxième DMZ (en secours en cas de panne de celle qui est en production) parfaitement à jour.
L’exemple que je vais traiter ici est celui des 4 bases de données importantes que nous ne pouvons pas nous permettre de perdre ::
– wordpress.sql
– prisesreseau.sql
– mytinytodo.sql
– spip.sql
2 Sauvegarde automatique des bases de données
La DMZ se trouve dans un vlan à part et pour des raisons de facilité, le serveur de sauvegarde (BACKUP) doit se trouver dans le même vlan. Les deux serveurs (DMZ et BACKUP) doivent pouvoir communiquer par le protocole SSH.
2.1 Génération et copie des clefs SSH
Avant toute chose, ssh doit être installé sur les deux serveurs
sudo apt-get install ssh
Création d’un compte (sur DMZ) permettant les sauvegardes
sudo adduser sauveur
Création d’un compte sur BACKUP recevant les sauvegardes de la DMZ
sudo adduser hosto
Sur BACKUP, génération des clefs ssh
ssh-keygen -t dsa
Il faut laisser la paraphrase vide lors de la génération
Copie de la clef pubique sur DMZ
ssh-copy-id -i ~/.ssh/id_dsa.pub sauveur@IP_DMZ
2.2 Mise place du script de sauvegarde des bases de données
Nous allons créer un script permettant de sauvegarder, dater et compresser les bases de données. On peut l’appeler backup_bases.sh
#! /bin/bash mysqldump -u user -pmon_mdp -e -B -v spip > /home/sauveur/bases/spip`date +\%Y\%m\%d`.sql && gzip /home/sauveur/bases/spip`date +\%Y\%m\%d`.sql mysqldump -u user -pmon_mdp -e -B -v wordpress > /home/sauveur/bases/wordpress`date +\%Y\%m\%d`.sql && gzip /home/sauveur/bases/wordpress`date +\%Y\%m\%d`.sql mysqldump -u user -pmon_mdp -e -B -v prisesreseau > /home/sauveur/bases/prisesreseau`date +\%Y\%m\%d`.sql && gzip /home/sauveur/bases/prisesreseau`date +\%Y\%m\%d`.sql mysqldump -u user -pmon_mdp -e -B -v mytinytodo > /home/sauveur/bases/mytinytodo`date +\%Y\%m\%d`.sql && gzip /home/sauveur/bases/mytinytodo`date +\%Y\%m\%d`.sql
Ensuite, on exécute ce script par exemple une fois par semaine le dimanche à 23h30. On écrit la ligne suivante dans le fichier /etc/crontab
30 23 * * 0 root bash /usr/local/bin/backup_bases.sh
3 Synchronisation de la sauvegarde sur un deuxième serveur
On se connecte sur le serveur BACKUP et on crée deux répertoires : un répertoire bases qui contiendra les bases de données ainsi qu’un répertoire scripts qui contiendra les scripts de sauvegarde
ssh hosto@backup mkdir bases mkdir scripts
Création du script de synchronisation (à mettre dans scripts)
#! /bin/bash log="/home/hosto/scripts/bases_rsync.log"; date=$(date +%Y-%m-%d-%H:%M); echo "Début synchronisation" >> /home/hosto/scripts/bases_rsync.log; echo $date >> /home/hosto/scripts/bases_rsync.log; echo "Début synchronisation" > /home/hosto/scripts/bases_mail.log; echo $date >> /home/hosto/scripts/bases_mail.log; rsync -avz -e "ssh -i /home/hosto/.ssh/id_dsa" sauveur@IP_DMZ:/home/sauveur/bases/ /home/hosto/bases/ >> /home/adminlocal/scripts/bases_rsync.log 2>&1 >> /home/hosto/scripts/bases_mail.log echo "Fin synchronisation" >> /home/hosto/scripts/rsync.log; echo $date >> /home/hosto/scripts/bases_rsync.log; echo $date >> /home/hosto/scripts/bases_mail.log; echo "Rsync du : `date +\%d\%m\%Y` " | mutt -x -a /home/hosto/scripts/mail.log -s "Synchronisation bases" -b mon_adress_mail@mon_domaine.org
On automatise la synchronisation tous le dimanche à 23h45 en faisant un
crontab -e
dans lequel on inscrit
45 23 * * 0 bash /home/hosto/scripts/bases_sync.sh
Et voilà, c’est terminé ! On a donc réalisé une sauvegarde automatique des bases une fois par semaine dans la DMZ puis une synchronisation de cette sauvegarde sur une machine distante afin d’être sur de ne rien perdre.
Qu en est-il de backup to dropbox? J ai quelques erreurs avec ce logiciel et je trouve l article bien pour une sauvegarde manuelle mais pas automatise si je comprends bien?
Désolé je ne connais pas backup to Dropbox.
L’article décrit ici comment faire des sauvegardes automatiques et non pas manuelles.