现在云服务应用已经非常成熟,相比以往,大家对云的认可也非常普遍,但总有一些项目,客户会有特殊的要求,数据要放本地机房,这样就需要定制备份策略。
1.首先,需要创建一个备份的脚本 mydb.sh
#!/bin/bash
# MySQL Server 登录信息
MYUSER="用户名"
MYPASS="密码"
MYHOST="localhost"
MYPORT="3306"
MYDB="库名"
# 备份相关配置信息
BAKDIR="/data/mysql-bak" # 备份保存目录
BAKFILE="$BAKDIR/$MYDB.$(date +'%Y-%m-%d').sql.gz" # 备份文件名,这里用压缩
# 创建备份目录
if [ ! -d "$BAKDIR" ]; then
mkdir -p "$BAKDIR"
fi
# 备份数据库至压缩文件
mysqldump -h "$MYHOST" -P "$MYPORT" -u "$MYUSER" -p"$MYPASS" --databases "$MYDB" | gzip > "$BAKFILE"
创建后,先执行一下是否能成功,我这边碰到一个问题,因为我是本地把脚本编辑好上传的,所以产生了一个编码问题无法执行,所以需要
[root@localhost ~]# sed -i 's/\r$//' *.sh
这样应该就可以顺利执行了。
2.添加定时任务 crontab -e
0 4 10 * * /home/bak/mydb.sh
minute:表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
编辑完输入:wq保存退出,这样就完成了