mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

  • 1、前言
  • 2、为什么需要自动化备份?
  • 3、编写备份脚本
  • 4、备份脚本授权
  • 5、添加定时任务
  • 6、重启 crond / 检查 crond 服务状态
  • 7、备份文件检查


💖The Begin💖点点关注,收藏不迷路💖

在这里插入图片描述

1、前言

在日常的系统管理工作中,数据库的备份是至关重要的一环。针对 MySQL 数据库的备份,我们可以编写 Bash 脚本来实现自动化备份操作,从而简化数据库管理的流程,保障数据的安全性和可靠性。

2、为什么需要自动化备份?

数据库作为应用程序的核心数据存储,包含了大量的重要信息,例如用户数据、配置信息等。一旦数据库出现意外故障或数据丢失,可能会给业务带来严重影响甚至损失。因此,定期进行数据库备份并保证备份文件的安全存储是非常重要的。

手动备份存在诸多弊端,例如容易出现疏忽、不及时等问题,因此自动化备份成为了一个更好的选择。通过编写脚本实现自动备份,可以提高效率、减少人为错误,同时也能够更好地保障数据的安全。

3、编写备份脚本

创建备份数据保存目录和bash脚本保存目录。

在 /mysql/backup 目录下创建一个名为 data 的子目录,用于保存备份数据;

在同一目录下创建一个名为 bash 的子目录,用于保存 bash 脚本文件。


mkdir /mysql/backup/data mkdir /mysql/backup/bash 

在这里插入图片描述

cd 到/mysql/backup/bash ,vi 编写备份脚本,如vi backup_mysql.sh

在这里插入图片描述

添加下面内容:

#!/bin/bash# 定义数据库连接参数
db_host="192.168.234.10" # 数据库IP地址
db_port="3306"          # 数据库端口
db_user="root"          # 数据库登陆用户名
db_passwd="zyl@2024"      # 数据库登录密码# 定义备份相关参数
db_name="db_zyl"                          # 需备份的库
backup_path="/mysql/backup/data"        # 备份文件存放路径,前面创建的目录
name="db_zyl-$(date +"%Y-%m-%d-%H:%M:%S")" # 定义备份文件的文件名格式# 执行备份命令,并压缩备份文件
mysqldump --flush-logs --user=$db_user --password=$db_passwd --host=$db_host --port=$db_port $db_name | gzip > $backup_path/$name.sql.gz# 备份文件传输至指定服务器(可选,如本机:192.168.234.10拷贝到192.168.234.20)
scp -r $backup_path/$name.sql.gz root@192.168.234.20:$backup_path# 删除7天前的备份
find $backup_path/* -mtime +7 -name "*.gz" -exec rm -rf {} \;

在这里插入图片描述

4、备份脚本授权

在添加定时任务之前,需要确保脚本已经有可执行权限。可以使用chmod +x 备份脚本 命令赋予脚本可执行权限。

chmod +x /mysql/backup/bash/backup_mysql.sh

在这里插入图片描述

5、添加定时任务

拓展:

当设置定时任务时,可以使用以下格式来详细定义时间:

* * * * *  执行脚本绝对路径
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (星期天可以用0或7表示)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)通过这五个字段的组合,可以精确地定义定时任务执行的时间。例如:30 2 * 1-5        表示在周一到周五的凌晨230分执行任务。
0 20 * * 1,3,5    表示在周一、周三、周五的晚上8点执行任务。
0 * * * *         表示每小时执行一次任务。
0 3 * * *         表示每天凌晨3点执行任务。
0 4 1 * *         表示每月的第一天凌晨4点执行任务。

根据具体的需求,可以灵活地调整定时任务的时间设置。

为脚本添加定时任务可以实现自动备份,以下是添加定时任务的步骤:

打开终端窗口,输入crontab -e命令,编辑当前用户的定时任务配置文件。

crontab -e

在文件中添加如下一行,注意是脚本的绝对路径,表示每天凌晨3点执行备份:

0 3 * * * /mysql/backup/bash/backup_mysql.sh

在这里插入图片描述

6、重启 crond / 检查 crond 服务状态

#重启 
systemctl restart crond#服务状态查看
systemctl status crond

在这里插入图片描述

7、备份文件检查

在这里插入图片描述

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540412.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录】【二叉树】补day21:二叉搜索树的最小绝对差 、二叉搜索树中的众数 、二叉树的最近公共祖先

最小绝对差 1.申请一个数组,比较两两之间最小的差值 def getresult3(self,node:TreeNode):self.nums[]self.getMinimumDifference(node)mindifferencefloat(inf)for i in range(len(self.nums)-1):mindself.nums[i1]-self.nums[i]if mindifference>mind:mindiff…

U盘打不开怎么办?专家解析原因与数据恢复之道

一、遭遇困境:U盘突然无法访问 在日常生活和工作中,U盘作为重要的数据存储和传输工具,其稳定性和可靠性至关重要。然而,有时我们会突然遭遇U盘打不开的困境,这无疑令人感到焦虑和困惑。当我们将U盘插入电脑时&#xf…

U盘文件夹变exe,数据恢复与防范全攻略

在日常使用U盘的过程中,不少用户都遭遇过这样一个令人头疼的问题:原本整齐有序的文件夹突然变成了exe可执行文件。这种异常情况不仅影响了文件的正常访问,更可能隐藏着数据丢失的风险。本文将深入探讨U盘文件夹变exe现象的背后原因&#xff0…

OSCP靶场--BlackGate

OSCP靶场–BlackGate 考点(1.redis rce 2. CVE-2021-4034提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC -p- 192.168.163.176 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-14 03:32 EDT Nmap scan report for 192.168.163.…

《LeetCode热题100》笔记题解思路技巧优化_Part_3

《LeetCode热题100》笔记&题解&思路&技巧&优化_Part_3 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题链表🟢1. 相交链表🟢2. 反转链表&…

Python常见设计模式库之python-patterns使用详解

概要 设计模式是解决软件设计问题的经验总结和最佳实践。Python 作为一种灵活且强大的编程语言,也可以使用设计模式来提高代码的可读性、可维护性和可扩展性。Python Patterns 库提供了一系列经典和常用的设计模式实现,本文将深入探讨 Python Patterns 库的功能、使用方法以…

java-app后台系统崩溃后的处理

系统架构: 系统用的是ngixn 、spirngcloud、nacos作为注册中心、gateway网管,数据库是mysql 数据库只有一个 服务也是单实例的 所以没有办法做负载均衡什么的。 问题描述: 公司近期开了几个活动之后由于访次数较多和代码问题导致系统挂了。…

Git如何清除账户凭证

场景:一般发生在Git用户变更的情况 1.git base 操作 Git会使用凭证助手 credential.helper来储存账户凭证,通过以下命令移除: git config --system --unset credential.helper 除了system系统级外,还有 global、local范围。 查…

【数据结构】二叉树---红黑树的实现

目录 一. 红黑树的概念及性质 二. 红黑树结点结构的定义 三. 红黑树的插入操作 1. 情况一 2. 情况二 3. 情况三 四. 红黑树的验证 五. 红黑树与AVL树的比较 一. 红黑树的概念及性质 红黑树是一种自平衡的二叉搜索树,它在每个节点上增加了一个存储位来表示…

并发编程之创建线程的几种方式以及运行的详细解析

3.1 创建和运行线程 方法一,直接使用 Thread // 创建线程对象 Thread t new Thread() {public void run() {// 要执行的任务} }; // 启动线程 t.start(); 例如: // 构造方法的参数是给线程指定名字,推荐 Thread t1 new Thread("t1…

mysql中用逗号隔开的某字段,如何判断其他表的字段值是否在这个字段中

因为要增加需求,需要将线上表中老数据,修改为新数据的规则。 线上两张表,sequence_number中is_use有3作废、2到期状态,需要根据这个状态和school_ai_authorization中的is_deleted修改新增的state字段。 sequence_number表结构&…

Mint_21.3 drawing-area和goocanvas的FB笔记(八)

FreeBASIC与TinyPTC绘图 TinyPTC是个操作非常简单的库,有各平台用的版本,linux平台版本又分为sdl版和gfx版,gfx版本比sdl版本速度快,尺寸不大,可操作的函数只有3个: ptc_open, ptc_update, ptc_close …