Skip to content

Instantly share code, notes, and snippets.

Last active December 13, 2021 22:02
What would you like to do?
Bash script to perform backups on one or more MySQL databases.
# Use this script to perform backups of one or more MySQL databases.
# Databases that you wish to be backed up by this script. You can have any number of databases specified; encapsilate each database name in single quotes and separate each database name by a space.
# Example:
# databases=( '__DATABASE_1__' '__DATABASE_2__' )
# The host name of the MySQL database server; usually 'localhost'
# The port number of the MySQL database server; usually '3306'
# The MySQL user to use when performing the database backup.
# The password for the above MySQL user.
# Directory to which backup files will be written. Should end with slash ("/").
# Date/time included in the file names of the database backup files.
datetime=$(date +'%Y-%m-%dT%H:%M:%S')
for db_name in ${databases[@]}; do
# Create database backup and compress using gzip.
mysqldump -u $db_user -h $db_host -P $db_port --password=$db_pass $db_name | gzip -9 > $backups_dir$db_name--$datetime.sql.gz
# Set appropriate file permissions/owner.
chown $backups_user:$backups_user $backups_dir*--$datetime.sql.gz
chmod 0400 $backups_dir*--$datetime.sql.gz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment