【网络云计算】2024第52周-每日【2024/12/26】小测-理论实操-备份MySQL数据库并发送邮件-解析
文章目录
- 1. 编写备份脚本
- 2. 设置定时任务
- 3. 注意事项
【网络云计算】2024第52周-每日【2024/12/26】小测-理论&实操-备份MySQL数据库并发送邮件-解析
为了实现您提出的Discuz数据库备份任务,包括备份脚本、定时任务、备份成功邮件确认、脚本运行时长、备份后的数据列表和数据大小、使用tar打包并压缩且加密码保护、生成MD5并发送邮件,我们需要进行以下步骤:
1. 编写备份脚本
首先,编写一个Shell脚本来完成备份任务。我们将使用mysqldump
来备份数据库,tar
来打包和压缩文件,md5sum
来计算MD5值,mail
或sendmail
来发送邮件。
#!/bin/bash# 设置变量
DB_USER="your_db_user"
DB_PASS="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/dir"
EMAIL="your_email@example.com"
TAR_PASS="your_tar_password"
LOG_FILE="$BACKUP_DIR/backup.log"# 获取当前时间
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_FILE="$BACKUP_DIR/discuz_backup_$TIMESTAMP.sql"
TAR_FILE="$BACKUP_DIR/discuz_backup_$TIMESTAMP.tar.gz"
MD5_FILE="$BACKUP_DIR/discuz_backup_$TIMESTAMP.md5"# 开始备份
{echo "Backup started at $(date)"echo "Database: $DB_NAME"echo "User: $DB_USER"# 备份数据库mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILEif [ $? -ne 0 ]; thenecho "Database backup failed" >> $LOG_FILEexit 1fi# 获取数据库文件大小和列表DB_SIZE=$(du -sh $BACKUP_FILE | awk '{print $1}')DB_FILES=$(ls -l $BACKUP_FILE)echo "Database backup size: $DB_SIZE" >> $LOG_FILEecho "$DB_FILES" >> $LOG_FILE# 打包并压缩,同时设置密码保护echo "$TAR_PASS" | tar --password-file=- -czf $TAR_FILE $BACKUP_FILEif [ $? -ne 0 ]; thenecho "Tar compression failed" >> $LOG_FILEexit 1fi# 计算MD5值md5sum $TAR_FILE > $MD5_FILEMD5_VALUE=$(cat $MD5_FILE | awk '{print $1}')# 结束时间END_TIME=$(date)echo "Backup ended at $END_TIME" >> $LOG_FILE# 计算运行时长RUN_TIME=$(date -d @$(( ( $(date +%s) - $(date -d "$(grep "Backup started at" $LOG_FILE | awk '{print $NF}') +%s) )) ) +"%H:%M:%S")echo "Run time: $RUN_TIME" >> $LOG_FILE# 发送邮件通知SUBJECT="Discuz Database Backup - $TIMESTAMP"BODY="Backup completed successfully.\n\n"BODY+="Run time: $RUN_TIME\n"BODY+="Backup size: $DB_SIZE\n\n"BODY+="Database backup file list:\n$DB_FILES\n\n"BODY+="MD5 checksum file attached.\n\n"BODY+="Best regards,\nYour Server"# 发送带有MD5附件的邮件uuencode $MD5_FILE $MD5_FILE | mail -s "$SUBJECT" -a "$MD5_FILE" $EMAILif [ $? -eq 0 ]; thenecho "Email with MD5 checksum sent" >> $LOG_FILEelseecho "Failed to send email with MD5 checksum" >> $LOG_FILEfi# 发送包含所有信息的邮件(可选)mail -s "$SUBJECT" -a "$TAR_FILE" "$EMAIL" <<< "$BODY"if [ $? -eq 0 ]; thenecho "Email with backup file sent (as attachment)" >> $LOG_FILEelseecho "Failed to send email with backup file" >> $LOG_FILEfi} >> $LOG_FILE 2>&1# 删除原始SQL文件(可选)
rm -f $BACKUP_FILE
注意:
uuencode
命令用于将文件编码为适合邮件发送的ASCII格式。然而,不是所有的邮件客户端或邮件服务器都支持此功能。如果uuencode
或邮件附件发送失败,您可能需要寻找其他方法来发送MD5文件或将其内容包含在邮件正文中。- 脚本中的密码保护是通过
tar
的--password-file=-
选项实现的,它从标准输入读取密码。这种方法在脚本中是不安全的,因为密码以明文形式出现在脚本中。在实际应用中,您应该考虑使用更安全的方法来存储和检索密码,例如环境变量、密钥管理服务或加密的配置文件。 - 发送邮件时,如果邮件服务器不支持附件或
uuencode
,您可能需要配置邮件服务器或使用第三方邮件发送服务(如SendGrid、Mailgun等)。
2. 设置定时任务
使用cron
来设置定时任务。编辑crontab文件:
crontab -e
添加一行来每天运行备份脚本(例如,每天凌晨2点):
0 2 * * * /path/to/your/backup_script.sh
保存并退出。现在,您的备份脚本将按照设定的时间自动运行。
3. 注意事项
- 确保备份目录有足够的磁盘空间来存储备份文件。
- 定期检查备份日志以确保备份成功。
- 定期测试邮件通知功能以确保在备份失败或成功时能够收到通知。
- 考虑使用更安全的密码存储和检索方法。
- 根据您的实际需求调整脚本中的变量和路径。
相关文章:
【网络云计算】2024第52周-每日【2024/12/26】小测-理论实操-备份MySQL数据库并发送邮件-解析
文章目录 1. 编写备份脚本2. 设置定时任务3. 注意事项 【网络云计算】2024第52周-每日【2024/12/26】小测-理论&实操-备份MySQL数据库并发送邮件-解析 为了实现您提出的Discuz数据库备份任务,包括备份脚本、定时任务、备份成功邮件确认、脚本运行时长、备份后的…...

菜鸟带新鸟——基于EPlan2022的部件库制作(3D)
设备逻辑的概念: 可在布局空间 中和其它对象上放置对象。可将其它对象放置在 3D 对象上。已放置的对象分到组件的逻辑结构中。 将此属性的整体标识为设备逻辑。可使用不同的功能创建和编辑设备逻辑。 设备的逻辑定义 定义 / 旋转 / 移动 / 翻转:组…...

Level DB --- MemTable
MemTable是Level DB中重要的组件,它主要处理Level DB内存级别的增删查改。 基本数据结构 基础的存储数据结构如图1所示,这是一个存储单元的结构。其中1是internal key size,这里面包括两部分,一部分我们Level DB存储key-value中…...

【山西长治】《长治市市直部门政务信息化建设项目预算编制规范和预算编制标准》(长财行[2022]25号)-省市费用标准解读系列32
《长治市市直部门政务信息化建设项目预算编制规范和预算编制标准(试行)》(长财行[2022]25号)于2022年8月1日开始试行,此标准由长治市财政局、长治市行政审批管理局编制,是对信息化建设项目预算管理的基本要求,主要适用…...
海格通信嵌入式面试题及参考答案
计算电路的最高工作频率如何计算? 计算电路的最高工作频率主要考虑电路中的关键路径延迟。关键路径是指在整个电路中,信号传播延迟最长的路径。电路的最高工作频率的倒数就是时钟周期,而时钟周期必须大于关键路径的延迟时间。 首先要确定电路中各个模块的延迟。比如对于组合…...

前端学习DAY27(盒子模型内边距)
内边距(padding),指的是盒子的内容区与盒子边框之间的距离 一共有四个方向的内边距, 可以通过: padding-top padding-right padding-bottom padding-left <!DOCTYPE html> <html lang"en"> <head><meta charset"U…...

基于cobra开发的k8s命令行管理工具k8s-manager
基于cobra开发的k8s命令行管理工具k8s-manager 如果觉得好用,麻烦给个Star!通用配置1 node 分析所有node的资源情况2 analysis 分析Node节点上的资源使用构成3 image 获取指定namespace的所有镜像地址4 resource 获取指定namespace的所有limit 与 Requests大小5 top…...
scala基础学习(数据类型)-数组
文章目录 数组 Array创建数组直接定义fillofDimtabulate range打印数组toSeqdeepforeach(println) length获取长度indexOf 获取元素索引获取元素/修改元素遍历数组数组内元素转换filter 过滤found 查找元素数组折叠 foldLeft切片拼接排序拷贝copyclone 数组 Array Array是一个…...

uniapp 微信小程序 页面部分截图实现
uniapp 微信小程序 页面部分截图实现 原理都是将页面元素画成canvas 然后将canvas转化为图片,问题是我页面里边本来就有一个canvas,ucharts图画的canvas我无法画出这块。 想了一晚上,既然canvas最后能转化为图片,那我直接…...

C语言从入门到放弃教程
C语言从入门到放弃 1. 介绍1.1 特点1.2 历史与发展1.3 应用领域 2. 安装2.1 编译器安装2.2 编辑器安装 3. 第一个程序1. 包含头文件2. 主函数定义3. 打印语句4. 返回值 4. 基础语法4.1 注释4.1.1 单行注释4.1.2 多行注释 4.2 关键字4.2.1 C语言标准4.2.2 C89/C90关键字…...

直流无刷电机驱动原理3-驱动板硬件设计
六步换向原理 检测转子角度,知道什么时候是60度,什么时候应该换向。 逆时针旋转 三相逆变器,mos管,半桥驱动电路。 PWM调制 不对称半桥调制例程使用第(2)种。对上桥臂PWM调制,下桥臂全部导通。这时候由上桥臂的PWM的占空比决定电机的旋转速度。驱动器电路硬件框图--实…...

攻防世界web第三题file_include
<?php highlight_file(__FILE__);include("./check.php");if(isset($_GET[filename])){$filename $_GET[filename];include($filename);} ?>惯例: 代码审查: 1.可以看到include(“./check.php”);猜测是同级目录下有一个check.php文…...
Trivy Operator命令使用说明
你已成功安装了 Trivy Operator,以下是命令的使用说明: 1. 查看 VulnerabilityReports VulnerabilityReports 是 Trivy Operator 生成的漏洞扫描报告,用于检查容器镜像中的漏洞。 kubectl get vulnerabilityreports --all-namespaces -o wi…...
Lazada商品评论API接口:深度解析与应用实践
在电商领域,用户评论是了解产品市场表现和消费者反馈的重要渠道。Lazada作为东南亚领先的电商平台,提供了商品评论API接口,允许第三方开发者获取平台上商品的评论信息。本文将深入解析Lazada商品评论API接口的重要性、开发应用、以及如何通过…...

2024最新鸿蒙开发面试题合集(二)-HarmonyOS NEXT Release(API 12 Release)
上一篇面试题链接:https://mp.csdn.net/mp_blog/creation/editor/144685078 1. 鸿蒙简单介绍和发展历程 HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言。带来简洁,流畅,连续࿰…...

macrodroid通过http请求控制手机运行宏
macrodroid adb命令 adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS例:http请求手机播放指定MP3文件 声音素材_电量过低提醒 新建一个宏 添加触发器-连接-http服务器请求 路径随意填,最好不要有特殊符号,不然浏览器识别链接会出错,…...

【Unity3D】Jobs、Burst并行计算裁剪Texture3D物体
版本:Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码,生成一个Texture3D资源,它只能脚本生成,是一个32*32*32的立方体,导出路径记得改下,不然报错。 using UnityEditor; using Uni…...
Cesium材质——Material
简介: Cesium.Material对象的目的,就是生成一段名称为czm_getMaterial的函数(示例代码如下), 这个czm_getMaterial函数,是shader代码,会被放到片元着色器中使用。 czm_material czm_getMater…...

Postman请求报错SSL证书验证问题
1.报错如下 2.解决报错...
终章:DevOps实践总结报告
DevOps实践总结报告 一、概述 1. 报告目的 本报告旨在总结DevOps实践中的关键领域、最佳实践和实施成果,包括需求管理、持续集成/持续部署、测试管理、安全管理和效能度量等方面。 2. 覆盖范围 #mermaid-svg-L0xFFzMbiDH1qhbl {font-family:"trebuchet ms&…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...