码迷,mamicode.com
首页 > 数据库 > 详细

使用shell自动备份数据库

时间:2017-12-08 16:14:53      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:天前   result   false   没有   today   l数据库   地址   grep   输入数据   

#!/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}.*`

  

使用shell自动备份数据库

标签:天前   result   false   没有   today   l数据库   地址   grep   输入数据   

原文地址:http://www.cnblogs.com/microtiger/p/8005183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!