Last active
May 12, 2017 19:48
-
-
Save Jamp/96cebe19db9c0755bb588f8778cf009a to your computer and use it in GitHub Desktop.
Backup one to one database with check
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 | |
# | |
# For create user `GRANT LOCK TABLES, SELECT ON DATABASE.* TO 'BACKUPUSER'@'%' IDENTIFIED BY 'PASSWORD';` | |
# | |
#### MySQL CREDENTIAL ### | |
HOST='localhost' | |
USER='root' | |
PASSWD='' | |
DBS='db01 db02 db03' # Databases separated by spaces | |
BACKUPDIRECTORY='/tmp/' # Ex: /tmp/ | |
EMAIL='[email protected]' | |
#### MySQL CREDENTIAL ### | |
basesize=800 # Base size compare 785 normal to mysqldump | |
d=$(date +%Y-%m-%d_%H%M%S) | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Starting backup on '$HOST | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Starting backup on '$HOST >> backup_$d.log | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Saving on '$BACKUPDIRECTORY | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Saving on '$BACKUPDIRECTORY >> backup_$d.log | |
# create dump file by database with date | |
for DB in $DBS | |
do | |
filename=$DB'_'$d'.sql.gz' | |
path=$BACKUPDIRECTORY$filename | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" Init "$filename | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" Init "$filename >> backup_$d.log | |
(mysqldump -h $HOST -u $USER --password=$PASSWD $DB | gzip > $path) 2> error_$d.log | |
size=$(cat $path | wc -c) | |
# check file dump is valid | |
if [ $size -lt $basesize ]; then | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" * "$filename" failed *" | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" * "$filename" failed *" >> backup_$d.log | |
rm -f $path | |
else | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" - "$filename" ready" | |
echo $(date +%Y-%m-%d' '%H:%M:%S)" - "$filename" ready" >> backup_$d.log | |
fi | |
done | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Finish backup' | |
echo $(date +%Y-%m-%d' '%H:%M:%S)' Finish backup' >> backup_$d.log |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment