有人说阿里云本身不是有备份吗?为什么还用自己本地化做备份策略啊,答案当然是“穷”了
阿里提供的服务都是要收费的,对于咱们这种小公司,没办法,只能自己局域网服务器里备份即可。
步骤:
准备 centos 7.x 服务器:192.168.0.36
- 先在本地服务里添加脚本:
- 建立删除脚本,删除周期自己宣言。
- 脚本
db-batch.sh
#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab #time 2018-12-14 #name hsqUSER=\"用户名\"PASSWORD=\"密码\"HOST=\"rm-2ze44ubdd90i9r4n0sbuo.mysql.rds.aliyuncs.com\"CONN=\"-h$HOST -u$USER -p$PASSWORD\"DATE_DIR=`date +%Y%m%d`LOCAL_DIR=/data/db-test/bak/$HOSTLOCAL_CMD=\"/usr/local/mysql/bin/mysqldump --no-defaults\"DATE=`date +%Y%m%d-%H%M`LOGFILE=/data/db-test/log/$DATE.logecho \"-----------------$DATABASE-$DATE 开始备份-------------------\" >> $LOGFILE if [ ! -d $LOCAL_DIR ];thenmkdir -p $LOCAL_DIRficd $LOCAL_DIR$LOCAL_CMD $CONN --all-databases > $DATE.sqlif [[ $? == 0 ]]; thenecho \"BACKUP SUCCESSFUL!\" >> $LOGFILE find $LOCAL_DIR -name $DATABASE\"*.sql\" -type f -mtime +5 -exec rm -rf {} \\;fi
删除脚本:clean.sh
#!/bin/bashfind /data/db-test/bak/rm-2ze44ub90i9r4n0sbuo.mysql.rds.aliyuncs.com -name \"*.sql\" -ctime 1 -exec rm -rf {} \\;
删除前一天之前的文件。
定时任务:
00 1,13 * * * /bin/sh /data/db-test/bin/db-batch-2ze44ub90i9r4n0sbuo.sh* 1 * * * /bin/sh /data/db-test/bin/clean.sh
第天 1 点、13 点执行备份脚本 。
每天 1 点执行删除脚本