mysql数据库备份

需求#

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

方法#

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

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

安装crontab#

1、Crontab是什么?

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

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

2、检测是否已安装

1
crontab --help

3、具体安装请参考1

编写脚本#

1、创建备份目录

1
mkdir DB-mysql

2、脚本模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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 文件即可恢复数据

开放权限:

1
chmod 777 sqlAutoBak.sh

设置计划#

1、执行命令

1
crontab -e

2、添加计划

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

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

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

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

更多时间格式:

1
2
3
4
5
6
# 例如: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:基本指令

作者:Hang Shao

出处:https://www.cnblogs.com/pam-sh/p/15086936.html

版权:本作品采用「知识共享」许可协议进行许可。

声明:欢迎交流! 原文链接 ,如有问题,可邮件(mir_soh@163.com)咨询.

posted @   PamShao  阅读(93)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu