各位用户为了找寻关于Mysql数据库定时备份脚本分享的资料费劲了很多周折。这里教程网为您整理了关于Mysql数据库定时备份脚本分享的相关资料,仅供查阅,以下为您介绍关于Mysql数据库定时备份脚本分享的详细内容
BackUpMysql.sh脚本
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49#!/bin/bash
PATH=
/bin
:
/sbin
:
/usr/bin
:
/usr/sbin
:
/usr/local/bin
:
/usr/local/sbin
export
PATH
#数据库ip
DBHOST=
''
#数据库用户名
DBUSER=
''
#数据库用密码
DBPASSWD=
''
#需要备份的数据库,多个数据库用空格分开
DBNAME=
''
#备份时间
backtime=`
date
+%Y-%m-%d_%H%M%S`
#备份路径(当前目录)
BACKPATH=$(
dirname
$(readlink -f $0))
echo
$BACKPATH
#日志备份路径
LOGPATH=
"${BACKPATH}/log"
#数据备份路径
DBPATH=
"${BACKPATH}/db"
#创建备份目录
[ ! -d
"${LOGPATH}"
] &&
mkdir
-p
"${LOGPATH}"
[ ! -d
"${DBPATH}"
] &&
mkdir
-p
"${DBPATH}"
#日志记录头部
echo
"备份时间为${backtime},备份数据库表 ${DBNAME} 开始"
>> ${LOGPATH}
/mysqlback
.log
#正式备份数据库
for
table
in
$DBNAME;
do
source
=`mysqldump -u ${DBUSER} -h${DBHOST} -p${DBPASSWD} ${table}> ${LOGPATH}/${backtime}.sql` 2>> ${LOGPATH}
/mysqlback
.log;
#备份成功以下操作 $?获取上一个命令的操作结果,0代表成功
if
[
"$?"
== 0 ];
then
cd
${LOGPATH}
#为节约硬盘空间,将数据库压缩
tar
-czf ${DBPATH}/${table}${backtime}.
tar
.gz ./${backtime}.sql >
/dev/null
#删除原始文件,只留压缩后文件
rm
-f ${LOGPATH}/${backtime}.sql
#删除七天前备份,也就是只保存7天内的备份
find
$DBPATH -name
"*.tar.gz"
-
type
f -mtime +7 -
exec
rm
-rf {} ; >
/dev/null
2>&1
echo
"数据库表 ${DBNAME} 备份成功!!"
>> ${LOGPATH}
/mysqlback
.log
else
#备份失败则进行以下操作
echo
"数据库表 ${DBNAME} 备份失败!!"
>> ${LOGPATH}
/mysqlback
.log
fi
done
通过 crontab 定时执行 BackUpMysql.sh 脚本,配置每天晚上12点执行
运行 crontab -e
输入
? 159 23 * * *
/data/mysqlbak/BackUpMysql
.sh
以上就是Mysql数据库定时备份脚本分享的详细内容,更多关于Mysql定时备份脚本的资料请关注其它相关文章!
本文作者: 低调小熊猫 本文链接: http://ilovey.live/archives/Mysqlbackupshell