shell 自动备份 MySQL 数据库脚本

2023-11-11

前提:在当前的机器中,已经安装了 MySQL,并且将 MySQL 已经加入到环境当中

安装 MySQL 和配置 MySQL 环境可参考文章 CentOS 8 通过二进制安装 MySQL

需求:编写 shell 脚本,自动备份 MySQL 数据库,并且备份数据库保留七天。

创建备份脚本:

cd ~

vim backup_mysql.sh

输入以下内容:

#!/bin/bash
# 改为你的 MySQL 地址
MYSQL_HOST="127.0.0.1"
# 改为你的 MySQL 端口号
MYSQL_PORT="3306"
# 改为你的 MySQL 用户名
MYSQL_USER="root"
# 改为你的 MySQL 密码
MYSQL_PASSWORD="root"

# 备份路径
BACKUP=/data/backup_mysql
# 当前时间
DATETIME=$(date +%Y%m%d%H%M%S)
# 自动获得所有的数据库
# 如果机器中没有加入 MySQL 环境,请将下面的 mysql 改为 mysql 文件的全路径
DATABASES=`mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "SHOW DATABASES;"`
# 创建备份目录
mkdir -p "${BACKUP}/$DATETIME"

for db in $DATABASES; do
    # 排除表头和一些无需备份的数据库
    if [[ "$db" != "Database" ]] && [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] ; then
        echo "正在备份数据库: $db"
        # 备份操作
        # 如果机器中没有加入 MySQL 环境,请将下面的 mysqldump 改为 mysqldump 文件的全路径
        mysqldump -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} --databases $db > ${BACKUP}/$DATETIME/$db.sql
        echo "数据库【$db】已备份到:${BACKUP}/$DATETIME/$db.sql 下"
    fi
done

# 删除7天前的文件
find $BACKUP -type f -mtime +7 -exec rm -f {} \;
echo "备份结束~"

给脚本添加可执行的权限:chmod +x backup_mysql.sh

执行脚本:./backup_mysql.sh

成功执行的效果如下
在这里插入图片描述
在这里插入图片描述

将脚本设置每天凌晨三点自动执行:crontab -e

添加下面内容:

# /root/backup_mysql.sh 为脚本的路径
00 03 * * * /root/backup_mysql.sh

完成之后会在每天凌晨三点自动备份一次数据库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell 自动备份 MySQL 数据库脚本 的相关文章

  • 使用 PHP MySql 进行关键字搜索?

    我的 mysql 表中有标题 varchar 描述 text 关键字 varchar 字段 我保留了关键字字段 因为我认为我只会在这个字段中搜索 但我现在需要在所有三个字段中进行搜索 所以对于关键字 word1 word2 word3 我的
  • 通过 R 连接到 Azure SQL

    下面的代码允许我通过 R 连接到 Azure SQL 服务器 但是 我只能访问 主 数据库 而不能访问我在下面创建的两个数据库 表格显示为空白 有什么想法吗 谢谢 library RODBC library dplyr library DB
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 了解自加入

    我正在练习自加入这是我在编写查询时不明白的事情 我有一张桌子 employee 员工表包含三个记录 id employee manager id 1 Ola NULL 2 Ahmed 1 3 Tove 1 最后一列 manager id 引
  • 如何在 Eloquent 中查询 JSON 列内的数组

    我已经在 Eloquent 中使用 JSON 成功完成了一些查询 但我不知道如何从数组内的对象中查询值 如下所示 在 属性 栏中 有 products media 1 code 4186GSB media 2 code 4186GSE 我想
  • pprof 和 ps 之间的内存使用差异

    我一直在尝试分析用 cobra 构建的 cli 工具的堆使用情况 这pprof工具显示如下 Flat Flat Sum Cum Cum Name Inlined 1 58GB 49 98 49 98 1 58GB 49 98 os Read
  • PDO 从表中获取一列到一维数组中

    我对 PDO 和让它们与 MySQL 一起工作还很陌生 我似乎在插入新数据和检索单个结果方面进展顺利 但是我坚持了下来 我有一张由配料组成的桌子 我试图将所有配料放入一个数组中 我已经直接在 SQL 中运行查询 它显示了所有结果 但是使用
  • 从数据库中删除样式 (SQL Server)

    我正在处理旧的数据库表 其中有附加了 CSS 的值 例如 font size 4 Select your gender font font size 4 Select your country font 除了一次删除一个样式之外 还有什么方
  • 当我使用 IS NOT NULL 时无法创建 MySQL TRIGGER

    CREATE TRIGGER b I O AFTER UPDATE ON book FOR EACH ROW BEGIN IF OLD status IS NOT NULL AND NEW status IS NOT NULL AND NE
  • 将mysql数据导入kubernetes pod

    有谁知道如何将我的 dump sql 文件中的数据导入到 kubernetes pod 中 直接 与处理 docker 容器的方式相同 docker exec i container name mysql uroot password se
  • 使用WordPress get_results()数据库函数是否可以防止sql注入

    似乎找不到答案 但想知道以下对数据库的查询是否容易受到 SQL 注入的攻击 searchPostResults wpdb gt get results querySearchVals OBJECT 这是使用的查询 global wpdb o
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • MySQL select with 语句

    我正在学习更多 SQL 并遇到了一个 问题 我有两个表 如下面的链接http www sqlfiddle com 2 403d4 1 http www sqlfiddle com 2 403d4 1 编辑 由于我这个周末所做的所有 SQL
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 检查字段是否为空

    如果我想检查该字段是否有除 null 和空之外的其他字符 查询是否正确 select CASE WHEN description IS NULL THEN null WHEN description IS NOT NULL THEN not
  • Mysql 更快的 INSERT

    好的 我有大约 175k 个 INSERT 语句 相当大的 INSERT 语句 例如 INSERT INTO gast ID Identiteitskaartnummer Naam Voornaam Adres Postcode Stad
  • 如何编写具有这种不寻常匹配标准的联接?

    我想要 左连接 一个表 以便值不仅连接到匹配行 而且还连接到任何后续的非匹配行 直到下一个匹配行 换句话说 我想用之前的非空值来填充空值 样本数据和期望结果 Table x id 1 2 3 4 5 Table y id val 1 a 4
  • SQL 查询 - 将查询中的日期格式更改为 DD/MM/YYYY

    我想要实现的目标相当简单 将一种日期格式转换为另一种日期格式 由此 Jan 30 2013 12 00 00 000AM对此 DD MM YYYY或者在这种情况下30 01 2013 但是 当它是该月的 1 号到 9 号时 日期格式缺少零并
  • 如何在 SQL 中引用自定义字段

    我正在使用 mssql 但在使用子查询时遇到问题 真正的查询相当复杂 但其结构与此相同 select customerName customerId select count from Purchases where Purchases c

随机推荐

  • ios中的锁

    代码测试可参考 只有实际写过才能更好的理解 在平时开发中我们经常会使用多线程 多线程为我们带来了很大便利 也提高了程序的执行效率 但同时也带来数据风险 当至少有两个线程同时访问同一个变量 而且至少其中有一个是写操作时 就发生了Data ra
  • java中栈的使用

    栈是什么 栈的定义 栈是我们经常使用的一种线性数据结构 它是只能通过一端操作的线性表 我们可以操作的一端称之为栈顶 另一端则称之为栈底 特点 栈通常和队列作比较 队列的特点是先进先出 栈的特点则是先进后出 举一个例子 比如说我们生活中洗碗
  • hdu 6181 Two Paths

    Problem acm hdu edu cn showproblem php pid 6181 Reference Dijkstra应用之次短路 2017 Multi University Training Contest 10 1011
  • 基于微信小程序的在线小说阅读系统,附数据库、教程

    1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统 系统的整体功能需求分为两部分 第一部分主要是后台的功能 后台功能主要有小说信息管理 注册用户管理 系统系统等功能 微信小程序主要分为首页 分类和我的三部分
  • ArcSDE 日志文件表(一)

    今天跟大家介绍一下ArcSDE日志文件表 一直都想好好研究一下这块 因为基本上不太受大家重视 感兴趣的用户不是很多 但是一旦出现多用户并发查询或者版本操作的时候 这个东西就显得非常重要了 而且根据不同的用户场景设定不同的日志类型 对相关效率
  • HTTP超文本传输协议

    HTTP协议 超文本传输协议 注意 我们以后编写Servlet类时 不会直接继承GenericServlet类 因为我们是B S结构系统 这种系统是基于HTTP超文本传输协议的 他有一个专门的Servlet类 我们编程的时候要继承HttpS
  • esp8266 esp12 AT指令连接wifi热点联网,HTTP获取OneNET物联网平台消息,控制四路远程开关

    esp8266 esp12 使用AT指令联网非常方便 很适合应对已经开发好的成品需要增加联网功能的需求 使用AT指令进行开发 大多数是产品已经开发好 只需要增加小数据量的联网功能 而且不想对既有成品有较大的方案修改 下面来使用 esp826
  • AttributeError: 'generator' object has no attribute 'next'

    在python3 x版本中 python2 x的g next 函数已经更名为g next 所以只需要将g next 换成g next 就可以了 如果你觉得g next 太丑 使用next g 也能达到相同效果
  • CentOS7中使用yum安装Nginx的方法

    最近无意间发现Nginx官方提供了Yum源 因此写个文章记录下 1 添加源 默认情况Centos7中无Nginx的源 最近发现Nginx官网提供了Centos的源地址 因此可以如下执行命令添加源 sudo rpm Uvh http ngin
  • Ubuntu18.04下安装OpenCV4.2.0与Opencv_contrib(图文详细报错总结)

    Ubuntu18 04下安装OpenCV4 2 0与Opencv contrib 图文详细 前期准备 环境依赖 Cmake 编译器 依赖环境 Python环境 streamer环境 图像处理依赖 安装OpenCV 编译OpenCV 配置cm
  • Unity3d--AR/MR 技术

    一 作业要求 1 图片识别与建模 2 虚拟按键小游戏 3 开发城市定向越野运动 MR 游戏 可选 游戏要求 准备 选择为每个用户准备一套拼图图片 含干扰图片 按一定策略发布到目标位置 随机位置偏移 越野地图一张 开始游戏 玩家在起点 用手机
  • EMC测试项目——辐射骚扰

    辐射骚扰 Radiation emission 主要是指能量以电磁波的形式由源发射到空间 或能量以电磁波形式在空间传播的现象 辐射骚扰是电磁兼容的重要内容 也是测试最不容易通过且最难整改的项目 辐射骚扰超标的产品可能引起周围装置 设备或系统
  • rust腐蚀怎么建立单机服务器_腐蚀rust新手入门指南 腐蚀rust怎么开始游戏

    如何开始游戏 巴拉巴拉那么多现在开始步入正轨吧 点击find game 就进入了服务器列表 在这里你可以加入官方的服务器 热闹但高延迟 也可以加入玩家自己设置的服务器 有些服务器不怎么友好详情请看贴吧举报贴 1 官方服务器列表 2和3 玩家
  • 解决JDK版本导致JMeter无法启动问题

    最近在做一个秒杀系统练习时 需要使用JMeter进行压力测试 但是安装JMeter后 出现了以下错误 很明显是JDK的版本问题导致的 但是我又不想改变系统的JDK版本 所以可以下载高版本的JDK 无需改变系统的JDK版本 直接在bin jm
  • nginx-代理多个服务

    目录 1 主机多Ip 1 1单网卡多ip主机配置 1 2修改default conf 1 3server1 conf 1 3server2 conf 1 4测试文件 1 4重启测试 2 主机多端口 2 1server1 conf 2 2se
  • 三个不等_高中数学竞赛常用的不等式归纳(续一)

    当 时 代入 23 为减少篇幅就不在此写出完整的 23式 下同 式得 即 25 25 式正是 22 九 加权不等式 9 1若 且 则 26 26 式就是加权的均值不等式 简称加权不等式 26 式形式直接理解为 几何均值不大于算术均值 十 赫
  • 2020第八届“泰迪杯”特等奖(基于 BERT 深度语言模型的“智慧政务”文本挖掘应用)

    目录 1绪论 1 1 智慧政务 文本挖掘的意义 1 2 智慧政务 文本挖掘的目标 1 3语言智能的里程碑技术 BERT 深度语言模型介绍 1 4本文的总体框架 1 5本文主要的创新之处 2基于 BERT 模型的留言自动分类 2 1任务介绍与
  • 数据库连接池C3P0学习

    数据库连接池C3P0框架是个非常优异的开源jar 高性能的管理着数据源 这里只讨论程序本身负责数据源 不讨论容器管理 一 实现方式 C3P0有三种方式实现 1 自己动手写代码 实现数据源 例如 在类路径下配置一个属性文件 config pr
  • 1-2 继承和接口

    1 继承 关键字extends 父类中私有成员可以被继承 只是外界无法访问 父类中公共属性 方法可以被子类继承 支持单继承 多重继承 单链式继承 不支持多继承 一个类继承多个父类 子类中的方法重写必须是父类中已有的方法 重写后再次调用父类的
  • shell 自动备份 MySQL 数据库脚本

    前提 在当前的机器中 已经安装了 MySQL 并且将 MySQL 已经加入到环境当中 安装 MySQL 和配置 MySQL 环境可参考文章 CentOS 8 通过二进制安装 MySQL 需求 编写 shell 脚本 自动备份 MySQL 数