通过shell脚本实现MySQL备份并恢复,for in流程控制

从3306备份数据库,还原到3307数据库上,通过shell脚本的for in流程控制实现
 
#!/bin/bash
 
my_date=`date +%Y%m%d`
my_time=`date +%H%M`
my_date_yesterday=`date +%Y%m%d --date='1 days ago'`
 
echo "----------------------------------------------------"
echo "$my_date $my_time"
 
backup_dir="/data/backup3307/${my_date}"
mkdir -p ${backup_dir}
echo "db backup dir: ${backup_dir}"
 
DBS="data1 data2 data3 data4 "
for db in ${DBS}
do
echo "${db} backup start..."
echo "$my_date $my_time"
file="${backup_dir}/${db}_${my_date}.sql"
mysqldump --login-path=backup --single-transaction --set-gtid-purged=OFF --opt --triggers --routines --events ${db} > ${file}
size=`ls -lh ${file}|awk '{print $5}'`
echo "size: ${size}"
echo "${db} backup end. "
echo "$my_date $my_time"
 
echo "${db} restore start..."
mysql --login-path=restore -e "CREATE DATABASE ${db}_$my_date_yesterday DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql --login-path=restore "${db}_$my_date_yesterday" < ${file}
echo "${db} restore end."
echo "$my_date $my_time"
echo "gzip ${file}"
gzip ${file}
done
 
# delete old backup data
old_date=`date +%Y%m%d -d '5 days ago'`
rm -rf /data/backup3307/${old_date}
 
for in循环举例:
 
#!/bin/sh
 
s="a b c "
 
for i in $s
do
echo "i is $i"
done
 
执行结果:
 
# ./for_in.sh
i is a
i is b
i is c

转载于:https://www.cnblogs.com/qingchen-24K/p/7281093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值