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}))"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM