@[toc]
MySql DUMP 自动备份数据库 Shell 脚本
MySql DUMP 自动备份数据库 Shell 脚本
MySql DUMP 自动备份数据库 Shell 脚本
MySql DUMP 自动备份数据库 Shell 脚本
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
# 参数定义
# -----------------------------------------------------------------
# 数据库地址
dbip='请输入'
# 数据库用户名
dbuser='请输入'
# 数据库用密码
dbpasswd='请输入'
# 需要备份的数据库,多个数据库用空格分开
dbname="请输入"
# 备份时间
backtime=$(date "+%Y-%m-%d %H:%M:%S")
# 日志备份路径
logpath="请输入"
# 数据备份路径
datapath="请输入"
# 实际备份执行
# -----------------------------------------------------------------
# 日志记录头部
echo "备份时间为 ${backtime},备份数据库表 ${dbname} 开始" >>${logpath}/log.log
# 正式备份数据库
for table in $dbname; do
source=$(mysqldump --default-character-set=utf8 --set-gtid-purged=OFF -h${dbip} -u ${dbuser} -p${dbpasswd} -R -E ${table} >${logpath}/${table}_${backtime}.sql) 2>>${logpath}/mysqllog.log
# 备份成功以下操作
if [ "$?" == 0 ]; then
cd $datapath || exit 0
# 为节约硬盘空间,将数据库压缩
tar -zcvf ${table}_${backtime}.tar.gz ${table}_${backtime}.sql >/dev/null
# 自动上传到其它备份服务器 (待办)
# 删除原始文件,只留压缩后文件
rm -rf ${datapath}/${table}_${backtime}.sql
# 删除七天前备份,也就是只保存7天内的备份
find $datapath -name "*.tar.gz" -type f -mtime +30 -exec rm -rf {} \; >/dev/null 2>&1
echo "备份时间为${backtime},数据库表 ${dbname} 备份成功!!" >>${logpath}/mysqllog.log
else
# 备份失败则进行以下操作
echo "备份时间为${backtime},数据库表 ${dbname} 备份失败!!" >>${logpath}/mysqllog.log
fi
done