mysql5.7.21备份脚本_Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
#!/bin/sh
#db_backups_conf.txt文件路徑
db_backups_conf="/wocloud/shell/db_backups_conf.txt"
#判斷文件是否存在
if [ -f "${db_backups_conf}" ];then
echo $(date +'%Y-%m-%d %H:%M:%S')" 數(shù)據(jù)庫配置信息文件存在,開始進(jìn)行數(shù)據(jù)備份"
#獲取等號(hào)前內(nèi)容,作為map中的Key值
dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))
#獲取等號(hào)后內(nèi)容,作為map中的value值
dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))
#創(chuàng)建一個(gè)空map
declare -A map=()
#通過循環(huán),將db_backups_conf配置文件中的信息存儲(chǔ)在map中
for((i=0;i
do
map[${dbArrOne[i]}]=${dbArrTwo[i]}
done
#獲取備份數(shù)據(jù)庫的字符串
copyDb=${map["copydb"]}
#獲取默認(rèn)的字符串分隔符
old_ifs="$IFS"
#設(shè)置字符串分隔符為逗號(hào)
IFS=","
#將備份數(shù)據(jù)庫value值的字符串進(jìn)行分隔,獲取一個(gè)數(shù)組
dbArr=($copyDb)
#將字符串的分隔符重新設(shè)置為默認(rèn)的分隔符
IFS="$old_ifs"
#獲取當(dāng)前年月日
saveday=$(date +%Y%m%d)
#獲取超出備份天數(shù)的年月日
delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)
#遍歷要備份的數(shù)據(jù)庫,刪除兩天前備份的數(shù)據(jù)文件
for delDb in ${dbArr[@]};
do
echo $(date +'%Y-%m-%d %H:%M:%S')" 刪除文件:"${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
rm -f ${map["backupsFileStr"]}/${delDb}_database_${delday}.sql
done
#遍歷要備份的數(shù)據(jù)庫,備份數(shù)據(jù)文件
for saveDb in ${dbArr[@]};
do
echo $(date +'%Y-%m-%d %H:%M:%S')" 備份數(shù)據(jù)庫:"${saveDb}
${map["mysqldumpStr"]} -u${map["username"]} -p${map["password"]} --default-parallelism=${map["threadCounts"]} -B ${saveDb} > ${map["backupsFileStr"]}/${saveDb}_database_${saveday}.sql
done
echo $(date +'%Y-%m-%d %H:%M:%S')" 數(shù)據(jù)備份完畢,腳本執(zhí)行完畢"
else
echo "文件不存在"
fi
總結(jié)
以上是生活随笔為你收集整理的mysql5.7.21备份脚本_Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 622150开头是什么银行
- 下一篇: 360借条可以不还吗