mysql数据库备份

需求

需要对mysql数据库,每天定时备份

方法

主要方式是:利用crontab工具执行shell脚本,shell脚本中编写备份命令。

如果没有crontab,就先安装crontab。

安装crontab

1、Crontab是什么?

“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。通俗的讲就是定时执行某个脚本、程序。

常用于:定时关机、定时检查更新、定时对系统配置、数据库、日志进行备份、定时清理垃圾文件

2、检测是否已安装

crontab --help

3、具体安装请参考1

编写脚本

1、创建备份目录

mkdir DB-mysql

2、脚本模板

#!/bin/sh

# Database info
DB_USER="batsing"
DB_PASS="batsingpw"
DB_HOST="localhost"
DB_NAME="timepusher"

# Others vars
BIN_DIR="/usr/bin"            #the mysql bin path
BCK_DIR="/mnt/mysqlBackup"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql

#还原数据库
#用mysql-front导入前一天的 *.sql 文件即可恢复数据

开放权限:

chmod 777 sqlAutoBak.sh

设置计划

1、执行命令

crontab -e

2、添加计划

*/1 * * * * /usr/local/include/wx-code/sqlAutoBak.sh

  意思是:每一分钟执行一次shell脚本

30 3 * * * /usr/local/include/wx-code/sqlAutoBak.sh

  意思是:每天凌晨三点半执行一次shell脚本

更多时间格式:

# 例如:db_2021-08-01.sql.zip
#DATE=`date +%F`
# 例如:db_20210801_161156.sql.zip
#DATE=`date +%Y%m%d_%H%M%S`
# 例如:db_2021-08-01 16:17:37.sql.zip
DATE=`date "+%F %T"`

参考

1、CentOS下使用yum命令安装计划任务程序crontab的方法

2、linux实现mysql数据库每天自动备份定时备份

3、shell脚本每天自动备份mysql数据库

4、Linux crontab 命令

5、linux:基本指令

posted @ 2021-08-01 16:20  PamShao  阅读(92)  评论(0编辑  收藏  举报