mysqldump完全备份shell脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump完全备份shell脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash
#?Date:2017-10
#?Version:0.1
#?Description:

db_user="root"
myisam_db="mysql"
db_passwd="123456"
host="localhost"
backup_dir="/opt/backup/mysql/sql"
log_file="/opt/backup/mysql/sql/mysql_backup.log"
keep_days=30
mysql="$(which?mysql)"
mysqldump="$(which?mysqldump)"
db_list=$(mysql?-h$host?-u$db_user?-p$db_passwd?-e?‘show?databases‘|egrep?-v?‘Database|information_schema|mysql|performance_schema‘)
export?PATH="/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
dbs=$(echo?$db_list|tr?‘\n‘?‘?‘)
myisam_dump_file=$backup_dir/MyISAM-$(date?+"%Y-%m-%d")-full.sql.gz
innodb_dump_file=$backup_dir/InnoDB-$(date?+"%Y-%m-%d")-full.sql.gz
old_file_myisam=$backup_dir/MyISAM-$(date?--date="$keep_days?days?ago"?+"%Y-%m-%d")-full.sql.gz
old_file_innodb=$backup_dir/InnoDB-$(date?--date="$keep_days?days?ago"?+"%Y-%m-%d")-full.sql.gz
info()?{
??if?[?$??-eq?0?];then
????echo?"Full?backup?$1?successfully."?>>$log_file
??else
????echo?"Full?backup?$1?failed."?>>$log_file
????echo?"Full?backup?$1?failed."|mail?-s?"Full?backup?$2?failed"[email protected]
??fi
}
delete_old_files()?{
if?[?-f?$1?];then
??rm?-rf?$1
??echo?"Delete?old?file?‘$1‘?successfully"?>>$log_file
fi

}

start_time=$(date?+"%F?%H:%M:%S")
[?!?-d?$backup_dir?]?&&?mkdir?-p?$backup_dir
[?!?-f?$log_file?]?&&?touch?$log_file
echo?"Starting?mysql?full?backup?database?at?$start_time"?>>$log_file
$mysqldump?-h$host?-u$db_user?-p$db_passwd?-F?-B?-x?--events?--triggers?--routines?--master-data=2?$myisam_db|gzip?>$myisam_dump_file?2>>$log_file?
info?$myisam_dump_file?"MyISAM"
$mysqldump?-h$host?-u$db_user?-p$db_passwd?-F?-B?--single-transaction?--events?--triggers?--routines?--master-data=2?$dbs|gzip?>$innodb_dump_file?2>>$log_file?
info?$innodb_dump_file?"InnoBD"
stop_time=$(date?+"%F?%H:%M:%S")
echo?"End?mysql?full?backup?database?at?$stop_time"?>>$log_file
delete_old_files?$old_file_myisam
delete_old_files?$old_file_innodb
echo?"?"?>>$log_file


以上是关于mysqldump完全备份shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

完全备份数据和差异备份数据的shell脚本

mysqldump用法,以及用mysqldump做完全+增量备份

mysqldump完全备份 和 二进制即时点还原数据库

MySql DUMP 自动备份数据库 Shell 脚本

MySql DUMP 自动备份数据库 Shell 脚本

MySql DUMP 自动备份数据库 Shell 脚本