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.mzph.cn/news/746569.shtml

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

相关文章

LeetCode28.找出字符串中第一个匹配项

28.找出字符串中第一个匹配项 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入…

“优化消费环境 维护消费者权”荥阳市城关乡社工站开展3·15宣传志愿活动

又是一年“315”,为提高辖区群众消费维权意识,让他们可以学会运用政策法律知识维护自身合法权益,同时也为营造出辖区良好营商环境。2024年3月15日,在荥阳市民政局、荥阳市市场监督管理局、城关乡人民政府的支持下,城关…

“值此春意,共享蓝天”—携手植新绿·静待成荫时

种竹交加翠,栽桃烂漫红。——唐杜甫《春日江村》 春风十里,万物生长。春风吹拂绿色现,树吐嫩芽花鲜艳。植树正是好季节,男女老少齐挥铲。种下棵棵小树苗,辛勤培育勤浇灌。来年长成苍天木,绿树成荫美景见。 …

基于ElasticSearch存储海量AIS数据:时空立方体索引篇

文章目录 引言I 时间维切分II 空间范围切分引言 索引结构制约着查询请求的类型和处理方式,索引整体架构制约着查询请求的处理效率。随着时间推移,AIS数据在空间分布上具备局部聚集性,如 果简单地将所有AIS数据插入一个索引结构,随着数据量增长,索引的更新效率、查询效率及…

RabbitMQ 模拟实现【六】:程序模拟实现

文章目录 模拟实现模拟消费者模拟生产者效果展示 启动结果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/71841546ad8043f1bd51e4408df791de.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f6e3e72ff9a4483c978ec48e24f075c2.p…

OceanBase原理之内存管理

第1章 前言 1.1 多租户管理简介 OceanBase数据库中,应用了单集群多租户的设计,使得一个集群内能够创建多个彼此独立的租户。在OceanBase数据库,租户成为了资源分配的单位,同时还是数据库对象管理和资源管理的基础。 在某种程度…

桌面备忘录,电脑桌面备忘录怎么设置

在当今快节奏的生活中,备忘录成为了人们工作和生活中不可或缺的工具。然而,随着科技的发展,纸质备忘录逐渐被电子桌面备忘录所取代。在电脑桌面设置备忘录,可以更加高效地管理任务和提醒事项。 电脑桌面是我们日常工作和娱乐的主…

2024年语言艺术、人文发展与教育国际会议(ICLAHDE2024)

2024年文学、历史与艺术设计国际会议(ICLHAD2024) 一、【会议简介】 2024年国际语言艺术、人文发展与教育会议(ICLAHDE2024)将在中国昆明举行,主题为“语言、人文与艺术”。ICLAHDE汇集了来自世界各地语言艺术、人类发展和教育领域的学者、工…

UE5C++学习(二)--- 角色简单连击

本文记录一下一个简单的角色基础连招。 它的做法就是:我们鼠标左键连续按下,会有一个动画蒙太奇索引去计数,获取到对应的蒙太奇动画数组中指定下标的攻击蒙太奇动画,然后进行播放;在播放的过程中用StartAttack()骨骼通…

刚刚拿到某安全公司「代码审计岗位」面试题

刚刚拿到,某安全公司「代码审计岗位」的面试题,让小编瞬间感到一股紧张又兴奋的情绪涌上心头。 代码审计,这个在信息安全领域里举足轻重的岗位,它要求的不仅仅是过硬的技术实力,更需要对细节敏锐的洞察力和对安全漏洞…

常见的软件系统性能测试指标

常见的软件系统性能测试指标 衡量一个软件系统性能的好坏,在性能测试中会使用一些性能指标来进行分析和描述,以下是一些最常用的性能指标。 1.2.1 响应时间 请求或者某个操作从发出的时间到收到服务器响应的时间的差值就是响应时间。在性能测试中&am…

微信小程序--开启下拉刷新页面

1、下拉刷新获取数据enablePullDownRefresh 开启下拉刷新: enablePullDownRefreshbooleanfalse是否开启当前页面下拉刷新 案例: 下拉刷新,获取新的列表数据,其实就是进行一次新的网络请求: 第一步:在.json文件中开…

AI程序员Devin会在6个方面影响人类程序员

讲动人的故事,写懂人的代码 初创公司Cognition最近所发布的世界上首个AI程序员Devin,让人类程序员百感交集。因为Devin能自动干下面的事情: 自己学习不熟悉的技术; 端到端地自己搭建和部署应用程序; 自己找出并修复…

如何根据主机监听端口号查找到对应docker容器

如何根据主机监听端口号查找到对应docker容器 问题描述 使用了一个端口是31883,这是个mq的端口号,但是怎么都找不到是哪个docker容器启用的 问题尝试解决 使用命令lsof -i:31883 如图 然后接着使用 ps -ef|grep 1128796,如图根本查不出来任…

扩展资料主机名到IP地址的有两种方式:DNS

中国联通的DNS地址有两种。 主 DNS 为“210.21.4.130”,备用 DNS 为“221.5.88.88”。 每个 IP 地址可以有一个主机名。 主机名由一串或多串字符组成。 用小数点分隔字符串。 对于中国联通宽带用户,主DNS设置为:210.21.4.130,备用…

c++ 面试100个题目中的编程题目

88、下列程序的运行结果是? #include <stdlib.h> #include <stdio.h> #include <string.h> #include <iostream> const char* str = "vermeer"; using namespace std; int main(){ const char* pstr = str;cout << "The add…

Devin横空出世,历史第一位人工智能软件工程师

大男主爽文的一刻&#xff0c;AI领域最近横空出世的Devin问世&#xff0c;可谓一石激起千层浪&#xff0c;让我们看这个创造出AI软件工程师的产品公司背景如何 2024年3月13日&#xff0c;Cognition AI在 X 上推出了全球首个AI软件工程师Devin&#xff0c;请记住这个名字。它在英…

光伏行业如何起步?光伏业务管理软件是重点!

随着全球对可再生能源的需求日益增强&#xff0c;光伏行业作为其中的佼佼者&#xff0c;正迎来前所未有的发展机遇。然而&#xff0c;如何在这一领域成功起步&#xff0c;却是许多企业和个人面临的挑战。在这个过程中&#xff0c;光伏业务管理软件的重要性不容忽视。 光伏行业的…

HarmonyOS NEXT应用开发—使用弹簧曲线实现抖动动画及手机振动效果案例

介绍 本示例介绍使用vibrator.startVibration方法实现手机振动效果&#xff0c;用animateTo显示动画实现点击后的抖动动画。 效果图预览 使用说明 加载完成后显示登录界面&#xff0c;未勾选协议时点击一键登录按钮会触发手机振动效果和提示文本的抖动动画。 实现思路 创建…

计算机组成原理练习-计算机工作过程

高级语言与机器语言之间的转换 ------------------------------------------------------------------------------------------------------------------------------- 1.将高级语言源程序转换为机器级目标代码文件的程序是&#xff08;&#xff09;。 A.汇编程序 …