diff --git a/.gitignore b/.gitignore index 285ae94..a9f76be 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ coverage # Local data secrets.py +*/.env_borg *.log # Virtualenv diff --git a/shell/.env_borg_example b/shell/.env_borg_example new file mode 100644 index 0000000..6016444 --- /dev/null +++ b/shell/.env_borg_example @@ -0,0 +1,3 @@ +BORG_PASSPHRASE='CHANGE_ME' +BORG_REPO='USER@SERVER:PATH' +BACKUP_FILE='PATH' diff --git a/shell/backup_db b/shell/backup_db index 2160106..859a728 100755 --- a/shell/backup_db +++ b/shell/backup_db @@ -1,9 +1,14 @@ #!/bin/bash +export $(cat .env_borg | xargs) + # Create temporary backups directory mkdir -p /tmp/note-backups -date=$(date +%Y-%m-%d) -# Backup database and save it as tar archive -sudo -u postgres pg_dump -F t note_db > "/tmp/note-backups/$date.sql" -# Compress backup as gzip -gzip "/tmp/note-backups/$date.sql" -scp "/tmp/note-backups/$date.sql.gz" "club-bde@zamok.crans.org:backup/$date.sql.gz" + +# Backup database +sudo -u postgres pg_dump -F t note_db > $BACKUP_FILE + +# Keep the last 30 backups +borg prune --keep-last 30 + +# Save backup +borg create --compression lz4 ::backup-{now} $BACKUP_FILE