Elements de script pour sauvegarde

Généralités

Le but de cet article n’est pas de proposer un tutoriel complet pour la sauvegarde des éléments de MedShakeEHR, mais de donner des pistes issues de notre expérience personnelle.

Nous vous encourageons à toujours faire des sauvegardes chiffrées sur un périphérique externe ! Comme pour votre ordinateur, il faut considérer que ce périphérique peut être dérobé et exploité par la suite de façon malveillante.

Sauvegardes sur disque externe

Il peut être intéressant d’avoir un disque dur externe attaché au serveur MedShakeEHR et d’y enregistrer toutes les heures un état complet de vos dossiers. Cela permet de prévenir la casse matérielle du disque interne et de repartir avec le minimum de données perdues.

Il est possible de chiffrer un disque externe comme l’on chiffre le disque dur ou le SSD principal de son ordinateur. Suivant le format de la partition du disque, cela peut cependant complexifier la restauration. On peut alors choisir de chiffrer uniquement les fichiers placés sur le disque.

Voici par exemple de quoi générer une sauvegarde chiffrée de la base de données :

mysqldump -uUTILISATEURSQL -pPASSWORDBDD ehr | gzip | gpg --batch --passphrase MAPASSPHRASEBIENCHOISIE -c > ehr.sql.gz.gpg

Où :
 UTILISATEURSQL est le login utilisateur
 PASSWORDBDD est le mot de passe de la base de données
 MAPASSPHRASEBIENCHOISIE est le mot de passe qui servira à chiffrer puis déchiffrer le fichier (il faut utiliser une phrase complexe et longue qui ne peut être devinée)

Il faudra bien sûr que les programmes nécessaires soient installés (gzip / gpg). On pourra complexifier les choses à partir de là. En effet ici le chiffrage est symétrique (même passphrase pour chiffrer, déchiffrer) et l’on peut aussi vouloir utiliser un chiffrage avec une paire de clés (privée / publique). On peut également faire varier le nom du fichier de destination pour conserver plusieurs versions horodatées.

Concernant les fichiers de MedShakeEHR, on pourra utiliser le très utile Duplicity pour aboutir simplement. Voilà un script qui lancé toutes les heures par exemple fera une sauvegarde complète tous les 3 jours (incrémentale sinon) de /home/ehr/ vers /media/disqueexterne/ehr (adapter le chemin de destination en fonction du point de montage du disque) et supprimera les sauvegardes vieilles de plus d’un mois.

export PASSPHRASE='MAPASSPHRASEBIENCHOISIE'
duplicity --full-if-older-than 3D /home/ehr file:///media/disqueexterne/ehr
duplicity remove-older-than 1M --force file:///media/disqueexterne/ehr
unset PASSPHRASE

Là encore, on pourra largement broder autour de cette solution en fonction de ses besoins et de son degré de paranoïa !

 

Article précédent

 

Article suivant