Linux之MySQL定时备份

news2024/11/15 6:14:46
#!/bin/bash
#author: zking
#MySQL定义备份并发送邮件
#定义变量
DATE=$(date +%F"_"%H:%M:%S)
HOST=127.0.0.1
DB=db1
USERNAME=root
PASSWORD=un1xR00t
MAIL=donkee@vip.qq.com
BACKUP_DIR=/data/db_backup
SQL_FILE=${DB}_sql_$DATE.sql

#判断备份目录是否存在
if [ ! -d $BACKUP_DIR ];then
     mkdir -p $BACKUP_DIR
fi

echo $BACKUP_DIR/$SQL_FILE
#执行备份命令
if mysqldump -h$HOST -u$USERNAME -p$PASSWORD --single-transaction $DB > $BACKUP_DIR/$SQL_FILE ;then
        echo "备份成功,文件位置:$BACKUP_DIR/$SQL_FILE" | mail -s "MySQL数据备份" $MAIL
else
        echo "备份失败" | mail -s "MySQL数据备份" $MAIL
fi
  • --single-transaction

    • 该参数通过在一个事务中导出所有表从而创建一个一致性的快照

    • 当前版本的MySQL只可以对innodb 引擎保证一致性,导出过程中不会锁表其他引擎,如MyISAM 在导出期间会锁表为保证有效的dump文件,即正确的表内容和二进制日志位置在导出的过程中不能有如下操作

      • ALTER TABLE

      • DROP TABLE

      • RENAME TABLE

      • TRUNCATE TABLE

    • 如指定了 --lock-tables参数则会自动将其关闭

    • 推荐在mysqldump中使用该参数

  • mysql逻辑备份&恢复

    • mysqldump备份
    • mysql、source恢复

这里使用的是mailutils工具包,请提前下载,输入命令:apt install -y mailutils。发送测试邮件:

echo "备份数据,$(date +%F' '%H:%M:%S)" | mail -s "MySQL数据备份" 你的邮件地址

发送成功之后,可以直接到邮件中查看发送结果。

如何实现定时发送呢?

Ubuntu 默认自带了Crontab计划任务,它的工作方式与 Windows 中的任务调度程序相同。使用 cron 守护程序,可以指定应执行某个进程(例如维护或备份作业)的时间。这样,就可以自动执行这些任务,以便稍后运行,而无需手动干预。

查看Cron服务相关命令:

# 查看服务状态
sudo  service cron status
# 开启服务
sudo service cron start
# 停止服务
sudo service cron stop
# 重启服务
sudo service cron restart

设置定时任务:

输入命令 crontab -e 并按 Enter 键打开 crontab 文件。该命令如下所示:

# 编写定时任务
crontab -e
# 查看定时任务
crontab -l

初次使用会让你选择文本编辑器,默认是 nano ,但是我只会用 vim ,所以选择 3,如图:

然后在最后插入以下内容就可以了:

# 每2分钟执行一次root目录下的mysqltest.sh脚本
*/2 * * * * /root/mysqltest.sh

Crontab定时任务命令格式

# 格式如下
# minute hour day-of-month month-of-year day-of-week commands
# 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 

# 每天0点0分,执行指定脚本
0 0 * * * /root/mysqltest.sh

# 星期1到星期5,11点30分,执行指定脚本
30 11 * * 1,2,3,4,5 /root/mysqltest.sh

...

首先 crontab 任务配置基本格

*   *  *  *  *  command
  • 第1列表示分钟0~59 每分钟用*或者 */1表示
  • 第2列表示小时0~23(0表示0点)
  • 第3列表示日期1~31
  • 第4列表示月份1~12
  • 第5列标识号星期0~6(0,7都可表示星期天)
  • 第6列要运行的命令

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

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

相关文章

Visual Studio提示:无法安装CPpython.Exe.x64

如果你需要在Visual Studio中使用python环境,而且你本身已经有一个python环境,则只需要将你自己的python环境配置到Visual Studio中即可,可以无视如题报错,将不会产生实质性的问题或影响。 解决办法: 工具->获取工…

zabbix“专家坐诊”第255期问答

问题一 Q:大家好,问一下,zabbix做聚合图的时候,可以做到两根线在一个图里- 吗?还是说只能,单边计算聚合,然后再最后作图的时候,添加两条线上去 A:两个数据吗 Q&#xff…

安全政策与安全意识(上)

目录 1、信息安全保障 信息安全保障的三大支柱 2、网络犯罪 2.1 网络犯罪的概念 网络犯罪与计算机犯罪区别 2.2 网络犯罪的特点 2.3 犯罪形式 2.4 网络犯罪的原因(主观) 2.5 网络犯罪的原因(客观) 2.5预防网络犯罪的对策 2.6 计算机信息网络国际联网安全保护管理办法…

C语言知识体系思维导图

为了更清晰地描述C语言知识体系,笔者用一个结构化的思维导图来概括其主要组成部分。见下: 这个思维导图旨在提供一个全面而系统的视角,帮助学习者逐步构建扎实的C语言知识体系。随着学习的深入,可以根据个人兴趣和职业需求&#x…

缓存预热/雪崩/穿透/击穿

1. 缓存预热 预先将MySQL中的数据同步至Redis的过程 2. 缓存雪崩 Redis主机出现故障,或有大量的key同时过期大面积失效导致Redis不可用 Redis中key设置为永不过期,或者过期时间错开Redis缓存集群实现高可用多缓存结合预防雪崩服务降级 3. 缓存穿透 …

51单片机-AT24C02(IIC总线介绍及其时序编写步骤)-第一节(下一节实战)

IIC开始通信(6大步) 我以前的文章也有对基本常用的通信协议讲解,如SPI UART IIC RS232 RS485 CAN的讲解,可前往主页查询,(2024.9.12,晚上20:53,将AT24C02存储芯片,掉电不…

Element UI按钮组件:构建响应式用户界面的秘诀

Element UI按钮组件:构建响应式用户界面的秘诀 一 . 创建按钮二 . 按钮的属性2.1 type 属性2.2 朴素按钮、圆角按钮2.3 size 属性2.4 圆形按钮2.5 加载状态2.6 禁用功能2.7 默认聚焦 三 . 按钮组 在现代网页设计中,按钮不仅是用户交互的核心元素&#xf…

即插即用篇 | YOLOv10 引入组装式Transformer模块AssembleFormer | arXiv 2024

本改进已同步到YOLO-Magic框架! 摘要—早期检测和准确诊断可以预测恶性疾病转化的风险,从而增加有效治疗的可能性。轻微的症状和小范围的感染区域是一种不祥的警告,是疾病早期诊断的重中之重。深度学习算法,如卷积神经网络(CNNs),已被用于分割自然或医学对象,显示出有希…

保姆级离线+windows环境+大模型前端UI安装(二)

看到很多文章采用docker在windows环境安装python或者是linux环境再装webui的,感觉比较麻烦,不够简洁,本文采用nodejs,来作为客户端引擎。 这篇只讲客户端安装,需要安装后端大模型及其运行的可以参考第一篇&#xff1a…

Vue入门学习笔记-表单

可以使用v-model 指令在表单控件元素上创建双向数据绑定。 引言: Vue采用了MVVM(Model-View-ViewModel)架构模式,通过指令可以快速实现数据和视图的双向绑定 修改视图层时,模型层也会改变;修改模型层&#…

【软考】程序设计语言基础

【软考】程序设计语言基础 一.程序设计语言基础概念 计算机要通过程序或指令来控制才能完成各种任务。程序设计语言(计算机语言):人与机器交换信息的语言。 1.程序设计语言 计算机语言大致分为机器语言、汇编语言和高级语言三种。机器语言…

迁移学习:让你的深度学习模型更聪明的秘密武器

在深度学习领域,训练一个高效的模型通常需要大量的标注数据和计算资源。然而,获取这样的数据并不总是容易。幸运的是,迁移学习为我们提供了一种解决方案,它允许我们利用已有模型的知识,从而在新任务上获得更好的性能。…

被要求撤回Blackwell?一家初创企业称英伟达侵权自家技术,忍无可忍!英伟达和伙伴微软被齐齐告上法庭,赔偿或高达数十亿!

刚刚,一家初创公司居然把巨头英伟达和微软一起告了! 名为Xockets的初创公司在诉讼中称,英伟达和微软公司窃取了其DPU技术,用以开发AI产品,并相互串通以压低其技术的价格,是名副其实的垄断行为!…

C语言16--宏定义和关键字

预处理 在C语言程序源码中,凡是以井号(#)开头的语句被称为预处理语句,这些语句严格意义上并不属于C语言语法的范畴,它们在编译的阶段统一由所谓预处理器(cc1)来处理。所谓预处理,顾名…

有没有视频加字幕免费软件?值得收藏的10款字幕编辑软件推荐!

随着视频成为我们生活中不可或缺的一部分,它已然成为信息传播的重要方式。然而,仅有精彩的内容还不足以吸引全球观众,字幕的加入显得尤为重要。不仅能帮助不同语言的用户理解视频内容,还能提升视频的互动性。许多视频制作爱好者开…

Linux 防火墙:iptables (一)

文章目录 iptables 概述netfilter 与 iptables 的关系 四表五链规则表规则链数据包处理的优先顺序与规则链匹配顺序规则表的优先顺序规则链的匹配顺序规则链内的匹配顺序匹配流程示意图 安装与格式iptables 的安装iptables 防火墙的配置方法iptables 命令行配置方法常用的控制类…

20道经典自动化测试面试题【建议收藏】

概述 觉得自动化测试很难? 是的,它确实不简单。但是学会它,工资高啊! 担心面试的时候被问到自动化测试? 嗯,你担心的没错!确实会被经常问到! 现在应聘软件测试工程师的岗位&…

圆锥曲线练习

设 A ( x 1 , y 1 ) , B ( x 2 , y 2 ) A\left( x_{1}, y_{1} \right), B\left( x_{2}, y_{2} \right) A(x1​,y1​),B(x2​,y2​) l : y k ( x 2 ) l: y k\left( x2 \right) l:yk(x2) 显然 y 0 y0 y0符合题意 当 k ≠ 0 k\neq 0 k0 联立 l l l和 C C C ( k 2 1 2 ) x…

基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台

系统背景 在当今数字化时代,校园生活正日益融入信息技术的浪潮之中,学生们对于便捷、高效且富有趣味性的生活方式有着越来越高的追求。特别是在饮食文化方面,随着校园周边餐饮业态的日益丰富,学生们渴望一个能够集美食探索、分享与…

SpringBoot入门(黑马)

1. SpringBootWeb入门开发 需求:使用SpringBoot 开发一个web 应用,浏览器发起请求 /hello 后,给浏览器返回字符串"Hello World~"。 步骤: 1. 创建springBoot工程,并勾选web开发相关依赖。 2. 定义 HelloCo…