Skip to content

Instantly share code, notes, and snippets.

@frankmarineau
Last active November 12, 2020 18:55
Show Gist options
  • Save frankmarineau/64a8076097427453c990db4eb82a52d3 to your computer and use it in GitHub Desktop.
Save frankmarineau/64a8076097427453c990db4eb82a52d3 to your computer and use it in GitHub Desktop.
Small shell script that backs up dokku databases to Google Cloud Storage
#!/bin/bash
echo "Backing up dokku databases to GCS ..."
dt=$(date +"%Y-%m-%d")
TEMP_BACKUP_PATH=/tmp/db-backups
REMOTE_BACKUP_PATH=gs://dokku-backups/$(date +"%Y")/$(date +"%B")
export_dbs() {
dbs=$(dokku $1:list | grep running | cut -f1 -d' ')
for db in $dbs
do
echo " backing up $db ..."
mkdir -p $TEMP_BACKUP_PATH/$db
f=$db/$dt-$db.tar
rm -f $f
dokku $1:export $db > $TEMP_BACKUP_PATH/$f
gsutil cp -z 'tar' $TEMP_BACKUP_PATH/$f $REMOTE_BACKUP_PATH/$1/$f
done
}
export_dbs mongo
export_dbs postgres
export_dbs mariadb
@frankmarineau
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment