为Linux系统添加定时备份Mysql(Docker)指定数据库的方法

引言
使用Mysql的时候遇到需要定时备份数据库的问题,但苦于Mysql自身没有提供直接的工具。

安装7z的目的主要是用于对数据库备份后的文件的压缩和加密。如果不需要也可以跳过此步骤。

 yum -y install epel-release
 yum -y install p7zip p7zip-plugins

安装完成后,如果使用以下命令测试,则安装成功

[En]

After the installation is complete, the installation is successful when testing with the following command

 7za -h

给出一个备份的范例

#!/bin/bash
数据库参数
backupDatabase=
password=
存储备份的目录,可以在任何位置。首先创建并授权它。<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>The directory where the backup is stored, which can be anywhere. Create and authorize it first.</font>*</details>
baseDir=/data/databack/
最终文件名,使用类似 mysql_database_20201231.sql
fileName=mysql_${backupDatabase}_date +%Y%m%d%H%M%S
备份数据库 其中mysql代表容器名称,如果没有名称可以用其他方法代替
docker exec mysql mysqldump -uroot -p${password} ${backupDatabase} > ${baseDir}${fileName}.sql

如果需要对数据库加密并删除指定天数前的备份,可以在Shell文件中追加以下命令。

必须先正确安装7z才能使用7za命令压缩文件
加密压缩 使用7zip 密码123456
7za a ${baseDir}${fileName}.7z ${baseDir}${fileName}.sql -p123456
删除刚刚备份的sql文件,留下压缩的
rm -f ${baseDir}${fileName}.sql;
删除大于90天的备份数据
find ${baseDir} -mtime +90 -name "mysql_${backupDatabase}_*.7z" -exec rm -rf {} \;

添加定时任务需要使用到Linux的crontab服务。我们可以通过下列命令来检测并安装这个服务。

检查crontab工具是否安装
crontab -l
检查crond服务是否启动
service crond status

如果没有安装该服务,我们需要安装它<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>If the service is not installed, we need to install it</font>*</details>
yum install vixie-cron
yum install crontabs

再确认安装完成后我们使用命令 crontab -e 打开crontab的编辑功能,添加如下示例:

定时任务 每日0点备份
注意别忘记 sh 命令
0 0 * * * sh /root/databack/dockerMysqlBackup.sh

添加完成后可以使用命令(systemctl restart crond),重启下crond服务确保服务能正常运行。

  • 第一个* : 分钟(0–59)
  • 第二个* : 小时(0–23)
  • 第三个* : 日期(0–31)
  • 第四个* : 月份(1–12)
  • 第五个* : 星期0–7(0或者7表示星期天)
  • comand : 要执行的操作

举例:

Original: https://www.cnblogs.com/ykbb/p/15923706.html
Author: 一块白板
Title: 为Linux系统添加定时备份Mysql(Docker)指定数据库的方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524076/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Ubuntu Typora安装

    Ubuntn Typora安装 现在好像开始收费了,网上给的方法都是从官网下载的,感觉迟早不能用,因为要钱了 官网好像给的安装方法如下,可是好像不太好用 or run: sudo …

    Linux 2023年6月14日
    099
  • WEB自动化-10-Page Object 模型

    10 Page Object 模型 10.1 概述 在针对一个WEB页面编写自动化测试用例时,需要引用页面中的元素( 数据)才能进行操作( 动作)并显示出页面内容。如果编写的测试用…

    Linux 2023年6月7日
    080
  • shell join详解

    首先贴一个,join –help 然后来理解下。 join 【命令选项】 文件1 文件2 //命令选项可以很多, 但文件只能是两个 先从重要的开始说,join 的作用是…

    Linux 2023年5月28日
    076
  • 事务与事务隔离级别详解

    事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL 语句。是数据库操作的一个执行单元。 事务开始于: 连接到数据库上,并执行一条DML 语句in sert 、update…

    Linux 2023年6月14日
    0100
  • 007 Linux 命令三剑客之-awk

    Linux 命令三剑客,sed、grep、awk。 sed:擅长数据修改。 grep:擅长数据查找定位。 awk:擅长数据切片,数据格式化,功能最复杂。 awk 更适合格式化文本,…

    Linux 2023年5月27日
    091
  • PHP array_reduce()

    array_reduce array_reduce() 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。 示例一: 示例二:…

    Linux 2023年6月7日
    0114
  • PHP 通过两个日期计算年龄

    参数:$birth_year:出生年份;$birth_month:出生月份;$birth_day:出生日 function getAgeByBirth($birth_year,$b…

    Linux 2023年6月7日
    0105
  • 四年测试的面试题分享

    其实想说为什么每次面试都要先来点自我介绍,说来说去简历上都有,我曾想过不能快速进入面试阶段嘛 我的专业技能: 基本上这些专业技能是在工作上用过或者自己摸索过,实战经验比较少,下面是…

    Linux 2023年6月8日
    086
  • Nginx 平滑升级(不需要关闭Nginx升级)

    Nginx 平滑升级 对Nginx的版本进行更新,或者要增添新的模块,最简单的方法就是停止当前的Nginx服务,重新编译安装nginx,然后开启新的Nginx服务。但是这样会导致在…

    Linux 2023年6月13日
    088
  • [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)

    1、效果预览 2、新增逻辑概览 3、tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4、init.py 逻辑介绍 5、upload.ht…

    Linux 2023年6月8日
    0121
  • etcd 与 redis使用场景

    etcd etcd主要讲究服务发现, 有监听机制, 并能保持数据的一直性, 高可用 etcd的红火来源于kurbernetes用etcd做服务发现 etcd是一种分布式存储,更强调…

    Linux 2023年5月28日
    0101
  • AI芯片的软件挑战

    本文是记录会议【ICPA联盟微课 | 第1期】燧原科技李彬:AI芯片的软件挑战内容。不得不说,什么叫高屋建瓴。 芯片软件的5个衡量指标:算力利用率、开发效率、生态兼容性、可移植性、…

    Linux 2023年6月7日
    091
  • .htaccess文件解析漏洞

    前言 htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的…

    Linux 2023年6月13日
    079
  • [转]EVE-NG 中使用 SecureCRT 合并tab标签

    在EVE-NG中双击设备使用SecureCRT对设备进行调试连接时,会出现每次连接不同设备时都会打开一个新的SecureCRT窗口,而不是在一个窗口中添加一个新的标签页,这就会导致…

    Linux 2023年6月8日
    0100
  • 关于ubuntu执行32位程序报错execvp():No such file or directory的解决方案

    一、前言 &#x5728;ubuntu 执行一个程序时,居然报错 execvp():No such file or directory ,报错截图如下图所示: ls -al…

    Linux 2023年6月8日
    0114
  • Nginx 实践案例(源码编译安装方式):利用LNMP搭建wordpress站点

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 ​LNMP是Linux + Nginx + MySQL + PHP 四个系统的首字母缩写,相对于 LAMP(Linux + Ap…

    Linux 2023年5月27日
    0117
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球