热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下MySQL自动备份脚本

为什么80%的码农都做不了架构师?源码mysqlDump.sh#!binbash#######################################

为什么80%的码农都做不了架构师?>>>   hot3.png

源码 mysqlDump.sh

#!/bin/bash
################################################
# TODO: 备份当前服务器上指定的数据库(多个库,以 , 分隔)
# 示例:
# ./mysqlDump.sh 备份默认设置的数据库
# ./mysqlDump.sh db_name1,db_name2,... 备份指定名称的数据库
#
# Author: whoru.S.Q
# Version: 1.0
################################################# 数据库连接参数
DB_HOST="127.0.0.1"
DB_USER="root"
DB_PWD=""
DB_PORT="3306"# 待备份的数据库名称,多个库时以 , 分隔
DB_NAME=# 备份文件路径
DUMP_FILE_PATH=/opt/backupfunction main {# 参数检查# 如果当前脚本在执行时传递了参数,则优先级高于当前脚本文件中变量的默认设置if [ -n "$1" ]; thenDB_NAME=$1elseif [ ! "$DB_NAME" ]; thenread -p "请输入要备份的数据库名称:" dbnameDB_NAME=$dbnamefifi# 检查备份目录是否存在if [ ! -d "$DUMP_FILE_PATH" ]; thenmkdir -p $DUMP_FILE_PATHif [ "$?" -ne "0" ]; thenecho -en "无法创建备份文件目录:$DUMP_FILE_PATH"exit 1fifi# 操作开始OLD_IFS="$IFS"IFS=","arr=($DB_NAME)IFS="$OLD_IFS"for db in ${arr[@]}do# echo "$db"doDump $dbdone
}function doDump {echo -en "\n\033[32m==>\033[0m 开始备份数据库:$1\n"dump_date=`date +%Y%m%d%H%M%S`dump_file=$1"_"$dump_date".sql"final_dump_file=$dump_file".tar.gz"# 备份# 考虑还原数据库时的通用性,备份的同时不执行压缩操作$(which mysqldump) -u$DB_USER -p$DB_PWD -P $DB_PORT $DB_NAME > $dump_fileif [ "$?" -ne "0" ]; thenecho -en "操作失败"exit 1fi# 压缩、转移备份的文件tar -zcvf $final_dump_file $dump_filemv $final_dump_file $DUMP_FILE_PATHrm -rf $dump_fileecho -en "\n\033[32m==>\033[0m 备份完成,生成备份文件:$DUMP_FILE_PATH/$final_dump_file\n"
}# 运行
main $1

使用说明

  1. 使用前先设置数据库连接参数

  2. 设置待备份的数据库名称

    • 方式一:在脚本文件里修改变量 DB_NAME
    • 方式二:运行脚本时动态传参,如 ./mysqlDump.sh db_name

    注意:脚本运行参数优先级高于脚本文件中的设置;待备份的数据库名称支持多个,以 , 分隔。

示例

[root@local wwwroot]# ./mysqlDump.sh online_v3.0==> 开始备份数据库:online_v3.0
Warning: Using a password on the command line interface can be insecure.
online_v3.0_20181012164400.sql==> 备份完成,生成备份文件:/opt/backup/online_v3.0_20181012164400.sql.tar.gz


更新:https://github.com/whorusq/linux-learning/blob/master/shell/mysqlDump.sh


转:https://my.oschina.net/antsky/blog/2244809



推荐阅读
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 在处理大数相加的问题时,有许多方法可以借鉴。本文介绍了两种不同的函数式编程方法:一种是从网络上找到的经典实现,另一种是作者自行设计的创新方案。通过函数式编程的方式重新实现了这两种方法,其中经典实现简洁明了,而创新方案则在性能和可读性方面有所提升。这些方法不仅适用于大数相加,还可以扩展应用于其他数值计算场景。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • Golomb 编码是一种高效的变长编码技术,专门用于整数的压缩。该方法通过预定义的参数 \( M \) 将输入整数分解为商 \( q \) 和余数 \( r \) 两部分。具体而言,输入整数除以 \( M \) 得到商 \( q \) 和余数 \( r \),其中商 \( q \) 采用一元编码表示,而余数 \( r \) 则使用二进制编码。这种编码方式在数据压缩和信息传输中具有显著的优势,特别是在处理具有特定概率分布的数据时表现出色。 ... [详细]
  • 本文全面解析了 gRPC 的基础知识与高级应用,从 helloworld.proto 文件入手,详细阐述了如何定义服务接口。例如,`Greeter` 服务中的 `SayHello` 方法,该方法在客户端和服务器端的消息交互中起到了关键作用。通过实例代码,读者可以深入了解 gRPC 的工作原理及其在实际项目中的应用。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 在MySQL中更新密码时,首先需要在DOS窗口中切换到mysql安装目录,并使用`--skip-grant-tables`参数启动MySQL服务,以跳过权限表验证。接着,在MySQL命令行中执行相应的SQL语句来设置新密码。完成密码更新后,重启MySQL服务以使更改生效。此外,对于电脑快捷方式的修改,可以通过右键点击快捷方式,选择“属性”,在弹出的窗口中进行路径或目标的修改,最后点击“应用”和“确定”保存更改。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
author-avatar
tanhuixi135_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有