教你如何使用shell脚本备份mysql数据库

更新时间:2018-08-17 16:37:12点击:83

使用shell备份数据库及自动删除过期数据,代码如下:

#!/bin/sh
#mysql地址
#检测用户是否手动输入了密码
mysql_host=""

#mysql用户
mysql_user=""

#mysql密码
mysql_password=""

#mysql数据库名

#如果不填写需要导出的数据库名称提示错误信息并终止执行,注意[]里面两边必须有空格
if [ ! -n "$1" ];then
    echo "您没有输入数据库名称"
    echo "格式:xxx.sh 数据库名称"
    exit
fi
mysql_name="$1"

#mysql安装路径
mysql_path="/usr/bin/"

#备份文件存放路径
bak_path="/root/shell/mysqlBak/${mysql_name}"

#删除过期数据 true代表是 false代表否
delete_overdue_data="true"

#删除多少天前数据 默认30天
delete_overdue_data_days=30

#检测目录是否存在,如果不存在自动创建目录
if [ ! -x "${bak_path}" ];then
    mkdir "${mysql_name}"
    chmod 755 "${bak_path}"
fi

#备份时间
bak_date=`date +%F`
${mysql_path}/mysqldump --opt -u${mysql_user} -p${mysql_password} -h${mysql_host} ${mysql_name} | gzip > ${bak_path}/${bak_date}.sql.gz

#检测是否删除过期数据
if [ "${delete_overdue_data}" != "true" ];then
    echo "备份数据完成..."
    exit
fi
#删除过期备份数据
#获取今天日期
the_date_today=`date +%Y%m%d`

#获取要删除的文件
find_date_file=`date -d "${the_date_today} ${delete_overdue_data_days} days ago" "+%Y-%m-%d"`

#进入指定目录
cd ${bak_path}
#查找要删除的数据
ls -l|grep ${find_date_file}
#取得查找结果0不存在 1存在
result=$?
echo ${result}
if [ ${result} == 0 ];then
    echo "删除过期数据"
    `rm -f ${find_date_file}.*`
fi


文章关键词  shell脚本备份mysql数据库

注:本文转载自林州网站建设工作室,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。