mysql数据库定时备份

1. 编写备份脚本

1)  vim  /home/task/***_back.sh

#!/bin/bash
#数据库认证
user="****"
password="*******"
host="*.*.*.*"
db_name="***"
#其它
backup_path="/home/task/bak/"
new_date='date "+%Y%m%d"'
old_date='date -d "-30 day" "%Y%m%d"'
new_tab="${backup_path}${db_name}${new_date}.sql"
old_tab="${backup_path}${db_name}${old_date}.sql"
#打印日志
echo "${new_date} --- ${old_date}"
echo "${new_tab}
echo "${old_tab}
#Dump数据库到sql文件
/usr/local/mysql/bin/mysqldump -h$host -u$user -p$password $db_name > $new_tab
echo "['date "+%Y-%m-%d %H:%M:%S"'] back end."
echo "删除30天之前的备份文件 ${old_tab}"
rm -rf $old_tab

上面有一点注意:

mysqldump 命令最好用全路径,

2)创建shell脚本中的路径

mkdir /home/task/bak

3)  保存后设置shell脚本权限可执行

chmod u+x  *_back.sh

2. 设置定时任务

1) corntab -e  编写定时任务

-e (edit)    -l(list) 查看当前系统所有定时任务

2) 编辑定时任务

0 0 * * *  /home/task/**_back.sh >> /home/task/log/**_bak.log 2>&1 &

命令解析:

(linux)corn 表达式,注意与spring的cron表达式不同

*     *   *   *   *  command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务 

>>  将备份数据库时的日志(echo)重定向到 /home/task/log/**_bak.log

2>&1   指将标准输出、标准错误指定为同一输出路径

linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2。
     STDIN是标准输入,默认从键盘读取信息;STDOUT是标准输出,默认将输出结果输出至终端;STDERR是标准错误,默认将输出结果输出至终端。
     由于STDOUT与STDERR都会默认显示在终端上,为了区分二者的信息,就有了编号的0,1,2的定义,用1表示STDOUT,2表示STDERR。

3. 查看备份文件(进行备份可用性恢复测试)

搭建相同数据库执行sql

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值