Skip to content

Instantly share code, notes, and snippets.

@bethrezen
Last active June 21, 2017 14:33
Show Gist options
  • Select an option

  • Save bethrezen/084c742822b64b94e7ba6af03ba2e4b4 to your computer and use it in GitHub Desktop.

Select an option

Save bethrezen/084c742822b64b94e7ba6af03ba2e4b4 to your computer and use it in GitHub Desktop.
#!/bin/bash
## configuration {
BACKUP_DIR="ABSOLUTE_PATH_TO_BACKUP_DIR"
DBNAME="UR_DB_NAME"
DBUSER="UR_DB_USER"
DBPASSWD="UR_DB_PASSWORD"
DATE_TEMPLATE="$(date '+%Y.%m.%d_at_%H-%M')"
DAYS_TO_STORE=30
## }
fname="${BACKUP_DIR}/${DBNAME}_${DATE_TEMPLATE}.sql"
# ensure existence of $BACKUP_DIR
mkdir -p "${BACKUP_DIR}"
mysqldump --routines --user="${DBUSER}" --password="${DBPASSWD}" "${DBNAME}" > "${fname}"
nice -n 20 gzip --best "${fname}"
rm "${BACKUP_DIR}/.latest.sql.gz"
# create symlink to latest backup
ln -s "${DBNAME}_${DATE_TEMPLATE}.sql.gz" "${BACKUP_DIR}/.latest.sql.gz"
# delete old backups
find "${BACKUP_DIR}" -type f -name "*.gz" -ctime "+${DAYS_TO_STORE}" -delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment