Skip to content

Instantly share code, notes, and snippets.

@richardkeep
Last active April 26, 2019 06:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardkeep/21802a59b80614867ea276fe8d182e2f to your computer and use it in GitHub Desktop.
Save richardkeep/21802a59b80614867ea276fe8d182e2f to your computer and use it in GitHub Desktop.
Backup databases to Dropbox
#!/usr/bin/env bash
# Setup Dropbox Oauth Access Token
# https://www.dropbox.com/developers/apps
DROPBOX_ACCESS_TOKEN=
cd ~
git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
$chmod +x Dropbox-Uploader/dropbox_uploader.sh
echo "OAUTH_ACCESS_TOKEN=$DROPBOX_ACCESS_TOKEN" > ~/.dropbox_uploader
mkdir -p Dropbox-Uploader/database/sql
cd Dropbox-Uploader/database
printf "Backing up databases\n"
exclude="Database|mysql|performance_schema|information_schema|phpmyadmin|sys"
for DB in $(mysql -uUSERNAME -p'PASSWORD' -e 'show databases' | tr -d "| " | grep -Ev '^('$exclude')$'); do
mysqldump -uUSERNAME -p'PASSWORD' $DB > "sql/$DB.sql";
done
zip=$(date +"%Y-%m-%d")
printf "Compressing the sql files to $zip\n"
zip -r $zip sql
printf "Uploading $zip to Dropbox\n"
bash ../dropbox_uploader.sh upload "$zip.zip" databases/
# Cleaning up temp files
unlink "$zip.zip"
rm -r sql/*
printf "Backup Complete.\n"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment