Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Automatic MySQL dump and backup to Git repo cron job
# @author: Jabran Rafique <>
# @link:
# Set variables
FULLDATE = $(date +"%Y-%d-%m %H:%M")
NOW = $(date +"%Y-%m-%d-%H-%M")
MYSQL_DUMP = `which mysqldump`
GIT = `which git`
DB_NAME = "foo"
CRON_USER = "bar"
TEMP_BACKUP = "latest_backup.sql"
BACKUP_DIR = $(date +"%Y/%m")
# Check current Git status and update
${GIT} status
${GIT} pull origin HEAD
# Dump database
# Make backup directory if not exists (format: {year}/{month}/)
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p $BACKUP_DIR
# Compress SQL dump
tar -cvzf $BACKUP_DIR/$DB_NAME-$NOW-sql.tar.gz $TEMP_BACKUP
# Remove original SQL dump
# Add to Git and commit
${GIT} add -A
${GIT} commit -m "Automatic backup - $FULLDATE"
${GIT} push origin HEAD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.