Recently i needed a simple solutions to backup a couple of files but did not want to spend the money to get azure backup. Currently i already use azure blob for my offsite/cloud storage so why not try this out for my linux VM.
-
Start by adding the ppa for duplicity
sudo add-apt-repository ppa:duplicity-team/duplicity-release-git sudo apt update sudo apt install duplicity
-
Install the python addin for azure which we need to connect to our blob storage
sudo apt install python3-pip sudo pip install azure-storage-blob
-
Create an scripts folder in root and backup script
sudo mkdir /root/scripts sudo touch /root/scripts/backup.sh
-
With everything ready we can fill the backup.sh file with the following commands
#!/bin/sh export AZURE_CONNECTION_STRING='<Azure connection string>' export PASSPHRASE=<Backup file password> duplicity incr --full-if-older-than 1W /path/to/backup/ azure://<containername> duplicity remove-older-than 1M azure://<containername> unset AZURE_CONNECTION_STRING unset PASSPHRASE
Fill in your information on the <> fields. This script will first set 2 variables for the azure connection string and the password used for the backup files. You can find the connection string in your storage account. When you run this script it will create a weekly full backup and delete everthing older than 1 month.
-
Set up crontab to automate the backups
Edit crontab usingcrontab -e
and add the following line:0 1 * * * /root/scripts/backup.sh >> /var/log/duplicity/backup.log
The backup script will now be run daily and backup our files to azure blob