Linux运维脚本案例:自动备份MySQL数据库并压缩

在日常的Linux运维工作中,数据库备份是一项至关重要的任务。下面是一个简单的脚本案例,用于自动备份MySQL数据库,并将备份文件压缩保存。

脚本内容

#!/bin/bash# MySQL数据库相关配置
DB_USER="your_mysql_user"
DB_PASS="your_mysql_pass"
DB_NAME="your_database_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql"# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR# 使用mysqldump备份数据库
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "MySQL数据库备份成功: $BACKUP_FILE"
elseecho "MySQL数据库备份失败!"exit 1
fi# 压缩备份文件
gzip $BACKUP_FILE
COMPRESSED_FILE="$BACKUP_FILE.gz"
echo "备份文件已压缩: $COMPRESSED_FILE"# 删除旧备份(可选,可根据需要设置保留天数)
find $BACKUP_DIR -name "mysql_backup_*.gz" -mtime +7 -delete
echo "已删除7天前的旧备份文件。"# 发送备份完成通知邮件(可选)
RECIPIENT="your_email@example.com"
SUBJECT="MySQL数据库备份完成通知"
BODY="MySQL数据库已成功备份并压缩,备份文件位于:$COMPRESSED_FILE"
echo "$BODY" | mail -s "$SUBJECT" $RECIPIENTecho "脚本执行完毕。"

脚本使用说明

  1. 将上述脚本保存为一个文件,例如mysql_backup.sh
  2. 修改脚本中的your_mysql_useryour_mysql_passyour_database_name/path/to/backup/directory为实际的值。
  3. 为脚本添加执行权限:chmod +x mysql_backup.sh
  4. 运行脚本:./mysql_backup.sh

脚本功能

  • 使用mysqldump命令备份指定的MySQL数据库到指定目录。
  • 检查备份是否成功,并输出相应的提示信息。
  • 将备份文件压缩为.gz格式。
  • 可选功能:删除指定天数前的旧备份文件,以避免占用过多的磁盘空间。
  • 可选功能:发送备份完成通知邮件给指定的收件人。

这个脚本可以根据实际需求进行扩展和修改,例如添加更多的数据库备份、备份到其他存储介质或云存储等。在运维工作中,自动化脚本可以大大提高工作效率和减少人为错误。

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

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

相关文章

测试人员如何做好工作量评估和风险把控?

今天想聊一聊关于测试工作量评估及需求进度把控的内容。 我个人觉得有时候评估测试工作量其实也挺难的,比如有的需求没有需求文档,只能靠自己对需求的理解去大概评估,有可能评估的工作量比实际需要的工作量会少点,对于每周进行迭…

【Index to Lectures or Courses】

文章目录 1 Speech / Course2 Material3 Basic knowledge and tools4 职位缩写你知道几个? 1 Speech / Course 《中国文化文概论》(武汉大学)【Paper material】【阅读笔记】【Reading Notes】(1)【Reading Notes】(…

Mybatis-plus中的分页操作

Mybatis-plus中的分页操作 1.导入Mybatis-plus依赖2.创建mybatis配置类3.参数 1.导入Mybatis-plus依赖 因为是一个springboot项目&#xff0c;其中的pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns&q…

用于时空交通数据插补的多注意张量完成网络

用于时空交通数据插补的多注意张量完成网络 摘要:道路传感器在物联网(IoT)中的广泛部署可以实现细粒度的数据集成,这是数据驱动应用程序的基本需求。 由于网络通信不稳定、传感器故障等,不可避免地丢失和实质性异常的传感数据是不可避免的。最近的张量补全研究通过精确捕获…

提高 RAG 应用准确度,时下流行的 Reranker 了解一下?

检索增强生成&#xff08;RAG&#xff09;是一种新兴的 AI 技术栈&#xff0c;通过为大型语言模型&#xff08;LLM&#xff09;提供额外的“最新知识”来增强其能力。 基本的 RAG 应用包括四个关键技术组成部分&#xff1a; Embedding 模型&#xff1a;用于将外部文档和用户查询…

DDoS攻击类型与应对措施详解

攻击与防御简介 SYN Flood攻击 原理&#xff1a; SYN Flood攻击利用的是TCP协议的三次握手机制。在正常的TCP连接建立过程中&#xff0c;客户端发送一个SYN&#xff08;同步序列编号&#xff09;报文给服务器&#xff0c;服务器回应一个SYN-ACK&#xff08;同步和确认&#xf…

【HormonyOS4+NEXT】TypeScript基础语法详解

&#x1f64b;‍ 一日之际在于晨 ⭐本期内容&#xff1a;TypeScript基础语法详解 &#x1f3c6;系列专栏&#xff1a;鸿蒙HarmonyOS4NEXT&#xff1a;探索未来智能生态新纪元 文章目录 前言变量与类型函数类与接口类&#xff08;Class&#xff09;接口&#xff08;Interface&am…

Nginx常用配置,开箱即用

经常遇到Nginx安装和配置的问题。这里笔者将常用配置统统写在下面&#xff0c;方便咱们日常使用。这里本着开箱即用的原则&#xff0c;所以大多数时候不会解释为什么要这样去配置&#xff0c;也不涉及Nginx的安装步骤。下面的所有配置&#xff0c;都可以直接复制后粘贴使用&…

PTA L2-045 堆宝塔 (25 分)

堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小&#xff0c;按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下&#xff1a; 首先准备两根柱子&#xff0c;一根 A 柱串宝塔&#xff0c;一根 B 柱用于临时叠放。把第 1 块彩虹圈…

2024第二十一届五一数学建模A题思路 五一杯建模思路

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

Linux系统的引导过程与服务控制

目录 一、Linux操作系统引导过程 二、Linux系统服务控制 系统初始化进程 三、运行级别切换 *运行级别及切换 Linux系统的运行级别 四、优化开机自动加载服务 五、修复MBR扇区故障 一、Linux操作系统引导过程 主要步骤 开机自检&#xff1a; 检测硬件设备&#…

winform入门篇 第13章 菜单栏

菜单栏 本章内容 菜单栏 工具栏 右键菜单 重点是右键菜单的实现。 菜单栏 MenuStrip&#xff0c;支持可视化编辑 添加 MenuStrip 添加菜单、菜单项、分隔线给菜单项设置属性 —Name 字段名&#xff0c;Text 文本显示,Image:图标 给菜单项添加事件处理(双击即可) 1.添加菜单…

数据库(MYSQL):SQL分类之DDL详解

1.SQL简介 1.SOL通用语法 1.SQL语句可以单行或多行书写&#xff0c;以分号结尾。 2.SQL语句可以使用空格/缩进来增强语句的可读性。 3.MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写&#xff0c; 4.注释&#xff1a; 单行注释…

在属性值中使用 JavaScript 表达式进行运算

在 Vue 模板中&#xff0c;属性值通常被解析为字符串。如果你想要在属性值中使用 JavaScript 表达式进行运算&#xff0c;可以使用冒号 : 将属性值声明为 JavaScript 表达式。这样&#xff0c;Vue 就会将属性值解析为 JavaScript 表达式&#xff0c;并且计算其结果&#xff0c;…

C# linq 根据多字段动态Group by

实现类&#xff1a; public static class LinqHepler {/// <summary>/// 根据单个字段动态Group/// </summary>/// <typeparam name"T"></typeparam>/// <param name"source"></param>/// <param name"prop…

Mysql 事物阻塞

1、查看现有事物&#xff08;锁&#xff09;&#xff0c;批量生成 kill 命令 select CONCAT(kill , trx_mysql_thread_id, ;) as kill_command, a.* from information_schema.innodb_trx as a -- where trx_query is null 2、查看指定数据库的线程&#xff0c;及其对应的事…

OSPF的P2P和Broadcast

OSPF为什么会有P2P和BROADCAST两种类型 OSPF&#xff08;开放最短路径优先&#xff09;协议中存在P2P&#xff08;点对点&#xff09;和BROADCAST&#xff08;广播多路访问&#xff09;两种网络类型&#xff0c;主要是为了适应不同类型的网络环境和需求。具体分析如下&#xf…

Jmeter 压测-Jprofiler定位接口相应时间长

1、环境准备 执行压测脚本&#xff0c;分析该接口tps很低&#xff0c;响应时间很长 高频接口在100ms以内&#xff0c;普通接口在200ms以内 2、JProfiler分析响应时间长的方法 ①JProfiler录制数据 压测脚本&#xff0c;执行1-3分钟即可 ②分析接口相应时间长的方法 通过Me…

Python 12306抢票脚本

请注意&#xff0c;编写或使用抢票脚本可能违反相关网站的服务条款和法律法规。以下内容仅供学习和了解技术原理之用&#xff0c;不鼓励或支持任何违反规定的行为。 Python 12306抢票脚本通常涉及以下几个步骤&#xff1a; 登录&#xff1a;使用Python的requests库模拟登录123…

Louvain算法简介

1. 背景 Louvain算法是一种基于图数据的社区发现算法(community detection)&#xff0c;算法的优化目标为最大化整个数据的模块度&#xff0c;模块度的计算如下&#xff1a; 其中m为图中边的总数量&#xff0c; 表示所有指向节点 i 的连边权重之和。 表示节点 i&#xff0c;j 之…