Files
root-scripts/mysql-dump.sh
T
2021-04-07 09:01:50 +02:00

35 lines
1.0 KiB
Bash

#!/bin/bash
#
# backup-mysql.sh 1.02
#
# Dumps all databases to seperate files. All files are created in a folder designated after the current date. Folders exceeding the defined hold time are purged automatically.
#
# (c)2015-2016 Harald Schneider
#
# Setup.start
#
HOLD_DAYS=3
BACKUP_DIR="/backup/mysql"
MYSQL_USR="root"
MYSQL_PWD="+avatar111"
MYSQL_CMD=/usr/bin/mysql
MYSQL_DMP=/usr/bin/mysqldump
# Use this for MAMP on MacOSX:
#
#MYSQL_CMD=/Applications/MAMP/Library/bin/mysql MYSQL_DMP=/Applications/MAMP/Library/bin/mysqldump
#
# Setup.end
TIMESTAMP=$(date +"%F")
mkdir -p "$BACKUP_DIR/$TIMESTAMP"
databases=`$MYSQL_CMD --user=$MYSQL_USR -p$MYSQL_PWD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
for db in $databases; do
echo "Dumping $db ..."
$MYSQL_DMP --force --opt --user=$MYSQL_USR -p$MYSQL_PWD --databases $db | gzip > "$BACKUP_DIR/$TIMESTAMP/$db.sql.gz"
done
echo
echo "Cleaning up ..."
find $BACKUP_DIR -maxdepth 1 -type d -ctime +$HOLD_DAYS -exec rm -rf {} +
echo
echo "-- DONE!"