Shell自动化脚本备份MySQL数据库(工作可直接使用)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Shell自动化脚本备份MySQL数据库(工作可直接使用)

工作需要老板安排让我备份一下公司的所有数据库

实验:编写备份数据库脚本

思路:

1.使用变量保存MySQL用户名密码

2.调用mysqldump命令备份数据库

3.使用tar打包工具进行打包

4.使用crontab计划时间备份

.创建脚本文件

vim data.sh

2.编写代码

#!/bin/bash
user="root"  #登录MySQL的用户名
my_pass="123456" #用户名密码
my_db1="bdqn"  #你需要备份的数据库名称
bf_dir="/backup" #备份文件的保存位置
bf_cmd="/usr/local/mysql/bin/mysqldump" #mysqldump命令的跟目录
bf_time="$(date +%Y%m%d-%H%M)"  #备份的时间
NAME_1="$my_db1-$bf_time"  #备份文件的名称加时间
cd $bf_dir  #切换到目录
#mysqldump备份的格式:mysqldump [选项] --databases 库名 > /备份路径/备份文件的名称
"$bf_cmd" -u "$my_user" -p"$my_pass" --databases  "$my_db1" >"$NAME_1".sql
#使用tar打包备份  --remove打包并删除源文件     
#&>:将正确信息或错误信息放到
tar zcf "$NAME_1".tar.gz "$NAME_1".sql --remove &> /dev/null

扩展:

/dev/null:简单来说就是一个无底洞,有什么不想要的都可以丢里面

专业说法 :用于输入流的空文件

3.赋予执行权限

chmod +x data.sh

4.运行脚本

 

./data.sh

警告错误


提示:Warning: Using a password on the command line interface can be insecure.

意思是:警告:在命令行界面使用密码是不安全的。


这里大家不必理会其实运行是正常的,是因为我们用变量的输入的密码,MySQL认为不安全

扩展:

       这里如果脚本没有创建/backup目录脚本会报错找不到指定文件夹,所以这里教大家一下识别没有的话会自动创建

原理:

这里利用了一个shell的一种语法判断

!:非,取相反的值

-d:判断此文件是否存在,判断是否为目录,是目录为真

&&:前一条命令为真,执行下一条命令

注意:需要的话加到进入目录之前即可

[ ! -d "$bf_dir"  ]  && mkdir -p "$bf_dir"

后面会更新关于shell详细的一些命令和语句

谢谢大家的支持

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
45
分享
相关文章
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
128 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
162 2
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
62 0
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
175 8
shell脚本自动化采集性能sql
通过v$sql_monitor能够实时采集可能存在的sql性能问题,但是每次问题发生的时候采取采取措施就有点“晚”了,我们需要防患于未然,把一些潜在问题提前发现,并加以解决。
881 0
|
1月前
|
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
107 32
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等