mysqldump定时备份

news/2025/3/6 16:22:17/文章来源:https://www.cnblogs.com/luguojie/p/18755720

mysqldump备份脚本

(建议备份数据量不大于100G)

创建备份路径:

[root@localhost ~]# mkdir -p /backup/{fullbak,scripts}
[root@localhost ~]# cat >/backup/scripts/mysql_full_backup_keep_last_two.sh<<'EOF'
#!/bin/bash
# ===========================
# MySQL Backup Script
# ===========================
# 设置MySQL配置文件路径
DB_CONF="/backup/scripts/my.cnf"# 全量备份目录
FULL_DIR="/backup/fullbak"
# 日志文件
LOG_FILE="/backup/scripts/back.log"# ====== Functions ======
# 输出日志
log_message() {local message="$1"echo -e "$(date '+%Y-%m-%d %H:%M:%S') - $message" | tee -a "${LOG_FILE}" 2>&1
}# 创建目录
create_directory() {local dir="$1"if [ ! -d "$dir" ]; thenmkdir -p "$dir"fi
}# 删除过期备份,但保留最近2份备份
clear_old_backups() {local backup_filesbackup_files=$(ls -1t ${FULL_DIR}/full_backup_*.sql)backup_count=$(echo "$backup_files" | wc -l)if [ "$backup_count" -gt 2 ]; thenfiles_to_delete=$(echo "$backup_files" | tail -n +3)echo "$files_to_delete" | xargs rm -flog_message "删除旧备份文件: $(echo "$files_to_delete" | tr '\n' ' ')"fi
}# 获取备份目录大小
get_dir_size() {local dir="$1"du -sh "$dir" | awk '{print $1}'
}# 全量备份
perform_full_backup() {create_directory "$FULL_DIR"local backup_timebackup_time=$(date '+%Y%m%d-%H%M%S')local backup_file="${FULL_DIR}/full_backup_${backup_time}.sql"log_message "日期: ${backup_time}"log_message "星期: $(date +%w)"log_message "本次全量备份文件为 ${backup_file}"mysqldump \--defaults-extra-file="$DB_CONF" \--all-databases \--single-transaction \--triggers \--routines \--events \--force  \> "${backup_file}"# 检查备份文件最后一行是否包含 "Dump completed on"if tail -n 1 "${backup_file}" | grep -q "Dump completed on"; thenlocal backup_sizebackup_size=$(get_dir_size "${FULL_DIR}")log_message "本次备份数据 ${backup_size}"log_message "备份完成...\n\n\n"elselog_message "备份失败,请检查日志!备份文件未包含关键字 'Dump completed on'\n\n\n"exit 1fi# 清理多余的备份文件,保留最近2份clear_old_backups
}# ====== Main Logic ======
log_message "备份开始..."
log_message "备份方式: 逻辑备份"
# 获取当前星期几
current_weekday=$(date +%w)
perform_full_backup
EOF

准备配置文件:

[root@localhost ~]# cat >/backup/scripts/my.cnf<<'EOF'
[client]
user=root
password=123456
host=127.0.0.1
port=3306
EOF

修改配置文件权限:

[root@localhost ~]# chmod 600 /backup/scripts/my.cnf

执行测试:

[root@localhost ~]# sh /backup/scripts/mysql_full_backup_keep_last_two.sh
2025-02-26 10:51:44 - 备份开始...
2025-02-26 10:51:44 - 备份方式: 逻辑备份
2025-02-26 10:51:44 - 日期: 20250226-105144
2025-02-26 10:51:44 - 星期: 3
2025-02-26 10:51:44 - 本次全量备份文件为 /backup/fullbak/full_backup_20250226-105144.sql
2025-02-26 10:51:44 - 本次备份数据 3.0M
2025-02-26 10:51:44 - 备份完成...2025-02-26 10:51:44 - 删除旧备份文件: /backup/fullbak/full_backup_20250226-105129.sql

写成定时任务(每周周六晚上0点执行):

[root@localhost ~]# crontab -e
0 0 * * 6 /bin/bash /backup/scripts/mysql_full_backup_keep_last_two.sh

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

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

相关文章

天嵌通途xczu15eg学习笔记——PL端DDR4的MIG IP核配置及测试过程

首先这是PL端的DDR4芯片,型号为MT40A256M16GE-075E,256Mx16,即512MB,由于不能上传附件,所以PDF还请大家自行上网搜索下载。DDR4参数的获取参考了以下两个CSDN的博客。 https://ztzhang.blog.csdn.net/article/details/142444632 https://blog.csdn.net/apple_53311083/art…

ThingsPanel与ThingsBoard:深度对比与选型剖析

在物联网平台领域,ThingsPanel和ThingsBoard各有千秋,为助大家明晰二者差异、精准选型,以下将从多个核心维度展开深度解读:ThingsPanelThingsBoard一、开源协议与版本模式开源协议: ThingsPanel遵循AGPLv3.0协议。 ThingsBoard采用Apache2.0协议。 版本提供:二者均配备社…

2025 年开源替代方案为何正在取代 OutSystems?技术自由度与成本优势深度解析

2025 年企业为何转向开源?揭秘 OutSystems 四大痛点,推荐 NocoBase、Appsmith、Budibase 等开源方案,帮助你的团队实现技术自由+成本优势双赢。原文链接:https://www.nocobase.com/cn/blog/outsystems-open-source-alternatives OutSystems 的隐藏成本不只是金钱 OutSystem…

rocketmq引入版本不对的问题

原因是,公司电脑可以正常启动,自己的电脑启动报错,报错是缺少了这个类 之后查看版本发现对不上,公司的事4.9.7,自己上面的居然是5.1.4 然后去除版本指定版本,不知道是否有问题,反正启动没问题了,不过部署还是用公司电脑吧,怕出问题<dependency><groupId>o…

navicat如何导出数据?附navicat15安装包

前言 大家好,我是小徐啊。navicat是我们常用的数据库连接工具,其功能十分强大。可以说是我使用过的各个连接工具中,最强大的工具。今天,小徐就来介绍下如何在navicat里面导出数据。文末附navicat15获取方式。 如何导出数据 首先,打开navicat,然后连接我们要导出的数据库。…

城市犯罪大数据时空分析与预测系统

随着城市化进程的加快,城市犯罪问题日益突出,对社会稳定和居民安全构成严重威胁。为了有效预防和打击犯罪,提升城市管理水平,构建城市犯罪大数据时空分析与预测系统显得尤为重要。本文将从系统建设内容的角度,探讨如何利用大数据和遥感技术,为城市安全保驾护航。一、系统…

华为云昇腾专区重磅上线!带你入门昇腾AI技术与DeepSeek实践

华为云昇腾专区重磅上线!专区围绕DeepSeek对话、互动式课程体系、业界主流大模型、免费实践环境四大核心能力,打造“体验—学习—应用”闭环,助力开发者实现AI转型“零门槛”跃迁。摘要:专区围绕DeepSeek对话、互动式课程体系、业界主流大模型、免费实践环境四大核心能力,…

基因测序芯片(Flowcell)加工工艺 -原子能和替代能源委员会生物梅里埃公司

一、公司简介: 原子能和替代能源委员会生物梅里埃公司 二、主流产品三、专利检索 ★专利检索1: ★专利: US8647465B2-Method of bonding microstructured substrates-2003 ★测序芯片(Flowcell)类型: 纳米孔FC ★加工工艺 1、一种含有微结构(5-50um)的基板的胶水粘接方…

React18 04 JSX底层渲染机制--创建虚拟DOM与真实DOM

关于JSX底层处理机制 1)首先,编写的JSX语法,编译为虚拟DOM对象(virtualDOM) 虚拟DOM对象:框架内部构建的一套对象体系(对象的相关成员都是React内部规定的),基于这些属性描述出所构建视图中的DOM节点的相关特征。 a. 基于babel-preset-react-app,把JSX编译为React.cr…

欢迎加入ARM64技术手册知识库

本文来自博客园,作者:dolinux,未经同意,禁止转载

基因测序芯片(Flowcell)加工工艺 -赛陆医疗

一、公司简介: 赛陆医疗是一家测序和空间组学平台开发商,公司专注于开发自主知识产权的上游测序平台,并基于其上构建了全球领先的超分辨空间组学平台,实现基因组学和空间组学产品的自主开发及科研临床端转化。公司创立于2020年,由美国知名大学教授和三位深圳市孔雀人才联合…