您的位置:首页 > 运维架构 > Shell

Centos上通过shell脚本实现数据库备份和还原

2017-12-22 09:05 561 查看
最近有个这样的需求,通过shell脚本实现数据库备份还原,最后通过网上查询自己测试实现,将脚本分享给大家

1、数据库备份脚本

#!/bin/bash

ds=`date +%s%N|cut -c1-13`
list=`date +%Y`/`date +%m`
dname="callme"
eval "mkdir -p $list"

ls_date=`date +%Y%m%d`
echo ${ls_date}
bk="mysqldump -R -E -h 127.0.0.1 -uroot -ppass ${dname} --result-file=${list}/${dname}-${ls_date}.sql"
echo $bk
eval $bk
cd $list
tar -czf callme-${ls_date}.tar.gz *.sql
rm -rf *.sql

cd ../..
mkdir -p logs/$list
cd logs/$list

de=`date +%s%N|cut -c1-13`

echo -e "`date +%Y%m%d%H%M%S` 数据备份成功" >> ${dname}.${ls_date}.log
echo -e "Running time:: $((${de}-${ds}))" >> ${dname}.${ls_date}.log
echo -e "Running time:: $((${de}-${ds}))"


2、数据库还原脚本

#!/bin/bash

ds=`date +%s%N|cut -c1-13`
name="callme"
mk="2017/12"
file_name="callme-20171219"
file_name_sql="${file_name}.sql"
file_name_tar="${file_name}.tar.gz"
pwd="pass"

cd ${mk}
tar -zxvf $file_name_tar

mysql -f -h 127.0.0.1  -uroot -p${pwd}  <<EOF

create database if not exists ${name};
use ${name};
source ${file_name_sql};

EOF

de=`date +%s%N|cut -c1-13`
echo -e "Running time:: $((${de}-${ds}))"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: