Created
March 13, 2018 12:02
-
-
Save cengizhancaliskan/9362ba3dc4941d407c4fedcd57f69d6d to your computer and use it in GitHub Desktop.
Mysqldump bash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
echo "Starting the backup script..." | |
ROOTDIR="/backup/mysql/" | |
YEAR=`date +%Y` | |
MONTH=`date +%m` | |
DAY=`date +%d` | |
HOUR=`date +%H` | |
SERVER="444.333.222.111" | |
BLACKLIST="information_schema performance_schema" | |
ADDITIONAL_MYSQLDUMP_PARAMS="--skip-lock-tables --skip-add-locks --quick --single-transaction" | |
MYSQL_USER="backupuser" | |
MYSQL_PASSWORD="backuppassword" | |
# Read MySQL password from stdin if empty | |
if [ -z "${MYSQL_PASSWORD}" ]; then | |
echo -n "Enter MySQL ${MYSQL_USER} password: " | |
read -s MYSQL_PASSWORD | |
echo | |
fi | |
# Check MySQL credentials | |
echo exit | mysql --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} --host=${SERVER} -B 2>/dev/null | |
if [ "$?" -gt 0 ]; then | |
echo "MySQL ${MYSQL_USER} - wrong credentials" | |
exit 1 | |
else | |
echo "MySQL ${MYSQL_USER} - was able to connect." | |
fi | |
#creating backup path | |
if [ ! -d "$ROOTDIR/$YEAR/$MONTH/$DAY/$HOUR" ]; then | |
mkdir -p "$ROOTDIR/$YEAR/$MONTH/$DAY/$HOUR" | |
chmod -R 700 $ROOTDIR | |
fi | |
echo "running mysqldump" | |
dblist=`mysql -u ${MYSQL_USER} -p${MYSQL_PASSWORD} -h $SERVER -e "show databases" | sed -n '2,$ p'` | |
for db in $dblist; do | |
echo "Backuping $db" | |
isBl=`echo $BLACKLIST |grep $db` | |
if [ $? == 1 ]; then | |
mysqldump ${ADDITIONAL_MYSQLDUMP_PARAMS} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} -h $SERVER $db | gzip --best > "$ROOTDIR/$YEAR/$MONTH/$DAY/$HOUR/`echo $db | sed 's/\//_/g'`.sql.gz" | |
echo "Backup of $db ends with $? exit code" | |
else | |
echo "Database $db is blacklisted, skipped" | |
fi | |
done | |
echo | |
echo "dump completed" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Permission problem: