Centos上通过shell脚本实现数据库备份和还原
最近有个这样的需求,通过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}))"