Skip to content

Instantly share code, notes, and snippets.

@stephenyeargin
Created September 11, 2011 00:26
Show Gist options
  • Save stephenyeargin/1209004 to your computer and use it in GitHub Desktop.
Save stephenyeargin/1209004 to your computer and use it in GitHub Desktop.
Nightly backup script for databases and subversion repositories.
#!/bin/sh
# Variables
DB_HOSTNAME=yourdbhost
DB_USERNAME=yourusername
DB_PASSWORD=yourpassword
SVNREP_PATH=path/to/repo/folder
BACKUP_PATH=path/to/save/backups
# ######### Database Backup #########
# Site 1
/usr/bin/mysqldump --opt --lock-tables=false --skip-add-locks --host=${DB_HOSTNAME} --user=${DB_USERNAME} --password=${DB_PASSWORD} ${DB_USERNAME}_example_com | gzip > ${BACKUP_PATH}/example_com_`date "+%Y-%m-%d"`.gz
# Site 2
/usr/bin/mysqldump --opt --lock-tables=false --skip-add-locks --host=${DB_HOSTNAME} --user=${DB_USERNAME} --password=${DB_PASSWORD} ${DB_USERNAME}_example_org | gzip > ${BACKUP_PATH}/example_org_`date "+%Y-%m-%d"`.gz
# ######### Subversion Backup #########
# Project 1
/usr/bin/svnadmin dump ${SVNREP_PATH}/project1/ --quiet | gzip > ${BACKUP_PATH}/svn_project1_`date "+%Y-%m-%d"`.gz
# Project 2
/usr/bin/svnadmin dump ${SVNREP_PATH}/project2/ --quiet | gzip > ${BACKUP_PATH}/svn_project2_`date "+%Y-%m-%d"`.gz
# ######### Clean-up Old Junk #########
# Deleting backups older than seven days
cd ${BACKUP_PATH}/
/usr/bin/find *.gz -mtime +7 -exec rm {} \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment