要求:
1.按时备份MySQL指定数据库。
2.将备份数据恢复到指定MySQL实例备用
3.将备份数据文件压缩,源文件删除
4.删除超过10日以上的备份文件(压缩后的)
代码:
#!/bin/sh
#-----start
dbuser="bitchicken"
dpwd="12345678"
dbname="chickens"
dbhost="rr-uf6ccxa6393236y3u.mysql.rds.aliyuncs.com"
backupdir="/newdisk2" #备份数据文件存放目录
time="$(date +"%d-%m-%y-%H")" #获得日期时间字符串,精确到小时
weekday=`date +%w`
MYSQLDUMP="/usr/bin/mysqldump" #备份命令,全路径
GZIP="/bin/gzip" #压缩命令,全路径
$MYSQLDUMP -h$dbhost -u$dbuser -p$dpwd $dbname > "$backupdir/$time.$dbname"
#--------end
find /newdisk2/chickens -type f -mtime +10 -delete #删除存在超过10天的文件,注意执行路径是备份文件存放目录
#Monday to Friday
if [ $weekday -ge 1 ] && [ $weekday -le 5 ];
then
mysql -uallenle -p1qaz2wsx chickes_report < "$backupdir/$time.$dbname"
fi
#$Saturday
if [ $weekday -eq 6 ];
then
mysql -uallenle -p1qaz2wsx chickens0616 < "$backupdir/$time.$dbname"
fi
#Sunday
if [ $weekday -eq 0 ];
then
mysql -uallenle -p1qaz2wsx chickens0617 < "$backupdir/$time.$dbname"
fi
#实战中因为数据库命名不是全部都有规则,因此使用了多个if来实现恢复数据到指定数据库
GZIP "$backupdir/$time.$dbname" #压缩,如果要分卷压缩,可以使用rar或者zip,这需要单独安装对应软件