35 lines
1.0 KiB
Bash
Executable File
35 lines
1.0 KiB
Bash
Executable File
#!/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!" |