最近有個這樣的需求,經過shell腳本實現數據庫備份還原,最後經過網上查詢本身測試實現,將腳本分享給你們mysql
一、數據庫備份腳本sql
#!/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}))"
二、數據庫還原腳本shell
#!/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}))"