Sauvegardes internes - MTES-MCT/histologe GitHub Wiki

Un disque dur est mis à disposition pour sauvegarder les fichiers Histologe et Stop Punaises. Les manipulations doivent être faites pour chacun des services une fois par semaine.

Sauvegardes de base de données

  • Se connecter sur Scalingo
  • Exporter la base de données gzip
  • Copier sur le disque dur

Sauvegardes des fichiers

  • Utiliser la cli aws pour copier les fichiers directement
  • Se placer dans le dossier du disque dur
  • Saisir la commande suivante : aws s3 cp s3://URL / --recursive
  • Ou saisir la commande suivante : aws s3 sync s3://URL /

Automatisation

Un script est disponible permettant de faire les sauvegardes nécessaires et il est à déposer sur ~/histologe/scripts/local/backup.sh

  • Les sauvegardes de bdd se font dans des dossiers datés.
  • Les sauvegardes de fichiers se font par projet à la racine de FILES. Ils ne sont plus dans des dossiers datés pour éviter de saturer le DD. * L'utilisation de la commande sync permet également de gagner du temps

Variables

  • Chemin absolu du projet Histologe : chemin où est stocké le fichier
  • Chemin absolu disque dur : Probablement /media/USERNAME/LaCie/Histologe/
  • histologe_id et stop_punaises_id : identifiant sur Scalingo
  • s3_url_histologe et s3_url_stop_punaises : s3://XXX.fr/
#!/bin/bash

source=[chemin absolu du projet histologe]
target_bdd=[chemin absolu disque dur]/BDD/
target_file=[chemin absolu disque dur]/FILES/

current_date=$(date +%Y-%m-%d)

histologe_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
stop_punaises_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

s3_url_histologe=yyyyyyyyyyyyyyyyyyyyyyyyyy
s3_url_stop_punaises=yyyyyyyyyyyyyyyyyyyyyyyyyy

touch backups-db.txt
echo "[Histologe] Downloading backup database..."
scalingo -a histologe --addon $histologe_id backups > backups-db.txt
cat backups-db.txt
backup_id=$(grep -m 1 "done" backups-db.txt | awk '{print $2}')
echo "[Histologe] Select backup id: $backup_id"
scalingo -a histologe --addon $histologe_id backups-download --backup "$backup_id"

echo "[Stop-punaises] Downloading backup stop-punaises database..."
scalingo -a stop-punaises --addon $stop_punaises_id backups > backups-db.txt
cat backups-db.txt
backup_id=$(grep -m 1 "done" backups-db.txt | awk '{print $2}')
echo "[Stop-punaises] Select backup id: $backup_id"
scalingo -a stop-punaises --addon $stop_punaises_id backups-download --backup "$backup_id"

echo "Moving backups to hard-disk..."
cd "$target_bdd"
mkdir -p "$current_date"
cd "$current_date"
target_folder=$target_bdd$current_date
mv $source*.tar.gz "$target_folder"

echo "Delete backups-db.txt..."
rm  $source*backups-db.txt

echo "[Stop-punaises] Downloading s3 bucket to hard-disk..."
aws s3 sync $s3_url_stop_punaises $target_file""/punaises

echo "[Histologe] Downloading s3 bucket to hard-disk..."
aws s3 sync $s3_url_histologe $target_file""/histologe