From 23ee109ac1b4470e2939c82677d90bd66e46eaf8 Mon Sep 17 00:00:00 2001 From: Jonas 12t Date: Mon, 11 Oct 2021 14:53:03 +0400 Subject: [PATCH] borgbackup & cron --- Backup/cron | 3 ++ Backup/dumps/__init__.py | 0 Backup/logs/__init__.py | 0 Backup/saveDb.sh | 56 +++++++++++++++++++++++++++ Docker/Development/docker-compose.yml | 1 + 5 files changed, 60 insertions(+) create mode 100644 Backup/cron create mode 100644 Backup/dumps/__init__.py create mode 100644 Backup/logs/__init__.py create mode 100644 Backup/saveDb.sh diff --git a/Backup/cron b/Backup/cron new file mode 100644 index 0000000..6ff5826 --- /dev/null +++ b/Backup/cron @@ -0,0 +1,3 @@ + +# sauvegarde de la billetterie TiBillet toute les nuits +1 4 * * * /usr/bin/docker exec cashless_django_bisik /Backup/saveDb.sh && rsync -avs /home/ubuntu/Bisik/TiBillet-Ticket/Backup/borg /home/syncthing/data/billetterie_borg/ --delete diff --git a/Backup/dumps/__init__.py b/Backup/dumps/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Backup/logs/__init__.py b/Backup/logs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Backup/saveDb.sh b/Backup/saveDb.sh new file mode 100644 index 0000000..7c791f7 --- /dev/null +++ b/Backup/saveDb.sh @@ -0,0 +1,56 @@ +#!/bin/bash +SECONDS=0 + +# pour load une sql : +# après avoir lancé les 'export' +# Mais sans avoir fait de migrate ! +# psql --dbname $POSTGRES_DB -f yourfile.sql +export DOMAIN=$DOMAIN + +export PGPASSWORD=$POSTGRES_PASSWORD +export PGUSER=$POSTGRES_USER +export PGHOST=$POSTGRES_HOST + +# borg init --encryption=repokey-blake2 . +# borg init --encryption=repokey-blake2 /SaveDb/borg + +export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes +export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes +export BORG_PASSPHRASE=$BORG_PASSPHRASE + + +touch /Backup/logs/backup_cron.log +touch /Backup/error_backup_cron.log +DATE_NOW=`date +%Y-%m-%d-%H-%M` +MIGRATION=`ls /DjangoFiles/BaseBillet/migrations | grep -E '^[0]' | tail -1 | head -c 4` + +PREFIX=$DOMAIN-M$MIGRATION + +DUMPS_DIRECTORY="/Backup/dumps" +BORG_DIRECTORY="/Backup/borg" +LOG_FILE="/Backup/error_backup_cron.log" + + + +echo $DATE_NOW" on dump la db en sql " +/usr/bin/pg_dumpall -f $DUMPS_DIRECTORY/$PREFIX-$DATE_NOW.sql + +#echo $DATE_NOW" on dumpdata en json via manage.py " +#/usr/local/bin/python /DjangoFiles/manage.py dumpdata -e auth.permission -e contenttypes -e sessions --all > $DUMPS_DIRECTORY/$PREFIX-$DATE_NOW.json + +# -e contenttypes -e auth.Permission -e sessions --all + +echo $DATE_NOW" on supprime les vieux dumps sql de plus de 30min" +/usr/bin/find $DUMPS_DIRECTORY -mmin +30 -type f -delete + +#echo $DATE_NOW" on check l'archive borg " +#/usr/bin/borg check /syncthing/data/bisik + +echo $DATE_NOW" on cree l'archive borg " +/usr/bin/borg create -vs --compression lz4 \ + $BORG_DIRECTORY::$PREFIX-$DATE_NOW \ + $DUMPS_DIRECTORY + +echo $DATE_NOW" on prune les vieux borg :" +/usr/bin/borg prune -v $BORG_DIRECTORY --prefix $PREFIX --list \ + --keep-within 2d --keep-daily=10 --keep-weekly=4 --keep-monthly=12 diff --git a/Docker/Development/docker-compose.yml b/Docker/Development/docker-compose.yml index 8aec317..85a9dd0 100644 --- a/Docker/Development/docker-compose.yml +++ b/Docker/Development/docker-compose.yml @@ -24,6 +24,7 @@ services: - 8002:8002 volumes: - "../../DjangoFiles:/DjangoFiles" + - "../../Backup:/Backup" - "../../Docker/bashrc:/root/.bashrc" working_dir: /DjangoFiles command: "bash /DjangoFiles/launch.sh"