利用mysqldump 与 nginx定时器 定时备份mysql库

1.安装mysqldump(如果备份远程mysql库,本地不用安装mysql 也可以单独使用)

yum -y install holland-mysqldump.noarch

2.编写备份脚本

首先这里我还是进入到/usr/local/shell 目录下编写脚本

vi mysql_backup.sh

#!/bin/bash
#备份文件存储的目录
BACKUP_DIR=/data/backup/mysql
 
#以执行的日期作为文件名,以防文件名重复覆盖
DATE=$(date +%Y_%m_%d)
 
#连接mysql用户名、密码、IP、数据库名,请根据自己的自行修改
#用户名
MYSQL_USER=root
 
#密码
MYSQL_PWD=123qweASD.
 
#因为我这是本地备份,就使用localhost
HOST=localohost
 
#使用的数据库
DATABASE=backup_test
 
echo "mysql backup start $DATE"
#判断一下如果备份的目录不存在,就创建该目录,两种写法都行,目前我把两种方式都列出了,想尝试方式二的把注释放掉即可
#方式一:
if [ ! -d $BACKUP_DIR/$DATE ]
then mkdir -p $BACKUP_DIR/$DATE
fi
#方式二
#[ ! -d $BACKUP_DIR/$DATE ] && mkdir -p $BACKUP_DIR/$DATE
 
#执行mysql备份数据库指令   其实最好将此文件进行压缩打包,这里简单保存为一个sql文件
mysqldump -u$MYSQL_USER -p$MYSQL_PWD --host=$HOST $DATABASE > $BACKUP_DIR/$DATE/$DATE.sql
 
#删除5天前的老的备份
find $BACKUP_DIR -mtime +5 -name "*.sql" -exec rm -rf {} ;
 
#解释上面这行命令的含义:
#find 是找到命令,找到变量BACKUP_DIR目录下 时间(-mtime) 5天前(+5) ,名字是(-name) 以.sql结尾的("*.sql")
#如果找到了的话(-exec),就执行后面的命令,rm -rf 删除 , {}  就是找到的内容。

3.设置定时器

给.sh文件赋予执行权限

chmod +x ./mysql_backup.sh

开始设置定时器

crontab -e

编写定时任务  每天凌晨2点备份

0 2 * * * /usr/local/shell/mysql_backup.sh
原文地址:https://www.cnblogs.com/houss/p/11671599.html