MySQL数据库备份脚本
PS:此脚本简单易懂,根据实际情况修改个别参数测试后即可使用,如有错误请指出!
1.MySQL数据库备份脚本
#!/bin/bashuser=
pw=
ip=
dateY=`date "+%Y"`
date2=`date "+%Y%m%d"`
date3=`date "+%Y%m%d %H:%M"`
date4=`date "+%d"`
date_ago=`date -d "-3 day" +%d`
data=./data
delete_db=./db_and_tables/old_db
new_db=./db_and_tables/new_db
delete_table_path=./db_and_tables#---------------------------------------------------------------------------------#
#查询数据库输出到文件删除不需要的数据库并生成文件夹;/usr/local/mysql/bin/mysql -u$user -p$pw -h$ip -e "show databases" > $new_db for i in `cat $delete_db`dosed -i "/$i/d" $new_dbdoneif [ ! -d "$data/$date4" ]thenmkdir -p $data/$date4fifor q in `cat $new_db`doif [ ! -d "$data/$date4/$q" ]thenmkdir -p $data/$date4/$qfidone
#---------------------------------------------------------------------------------#
#查询表并输出到相应文件中;for w in `cat $new_db`do/usr/local/mysql/bin/mysql -u$user -p$pw -h$ip -e "use $w ; show tables" > $delete_table_path/${w}_table#删除3天前的备份rm -rf $data/$date_agodonefor e in `cat $new_db`dofor t in `cat $delete_table_path/${e}_list_structure`dosed -i "/\<$t\>/d" $delete_table_path/${e}_tabledone#根据过滤条件过滤掉不需要的表;sed -i "/2022/d" $delete_table_path/${e}_tablesed -i "/$dateY/d" $delete_table_path/${e}_tablesed -i "/Tables_in_*/d" $delete_table_path/${e}_tabledone
#---------------------------------------------------------------------------------#
#备份表for ((s=1;s<2;s++))dodb_structure=`cat ${new_db} | awk "NR==$s"`for a in `cat $delete_table_path/${db_structure}_list_structure`doecho "$date3 --- 导出 --- $db_structure --- $a --- 表结构" >> ./out.out/usr/local/mysql/bin/mysqldump -u$user -p$pw -h$ip -d $db_structure $a > $data/$date4/$db_structure/${a}_${date2}.sqldonedone
#---------------------------------------------------------------------------------#
#备份数据for ((d=1;d<2;d++))dodb_data=`cat ${new_db} | awk "NR==$d"`for b in `cat $delete_table_path/${db_data}_table`doecho "$date3 --- 导出 --- $db_data --- $b --- 数据" >> ./out.out/usr/local/mysql/bin/mysqldump -u$user -p$pw -h$ip $db_data $b > $data/$date4/$db_data/${b}_${date2}.sqldonedone
2.脚本结构解释
[root@bj-1-77 12]# ls
data db_and_tables out.out script.sh
[root@bj-1-77 12]# ls db_and_tables/
monitor_caiji_list_structure old_db
- data:是个文件夹,用于存储备份下来的数据;
- db_and_tables:是个文件夹,用于存储脚本中需要的配置参数;
- old_db :存储不需要备份的数据库;脚本会通过此配置从而生成需要备份数据库的新文件new_db;
- monitor_caiji_list_structure:在执行脚本前将不需要备份表的表名写入此文件中,执行脚本后会生成新文件monitor_caiji_table,文件名命名规则:({数据库名称}_list_structure);
- out.out:脚本执行后输出的日志记录;
- 脚本中for ((d=1;d<2;d++)) 2为备份数据库的总数+1;
3.脚本执行效果
PS:环境:
- 数据库:monitor_caiji
- 备份的表:video_brief、video_list
- 不备份的表:mblog_info
[root@bj-1-77 12]# ls
data db_and_tables out.out script.sh
#备份下的数据
[root@bj-1-77 12]# ls data/09/monitor_caiji/
video_brief_20230509.sql video_list_20230509.sql
[root@bj-1-77 12]# ls db_and_tables/
monitor_caiji_list_structure monitor_caiji_table new_db old_db
[root@bj-1-77 12]# cd db_and_tables/
#不备份的数据库
[root@bj-1-77 db_and_tables]# cat old_db
Database
information_schema
mysql
performance_schema
sys
#需要备份的数据库
[root@bj-1-77 db_and_tables]# cat new_db
monitor_caiji
#不备份的数据表
[root@bj-1-77 db_and_tables]# cat monitor_caiji_list_structure
mblog_info
#需要备份的数据表
[root@bj-1-77 db_and_tables]# cat monitor_caiji_table
video_brief
video_list
#日志
[root@bj-1-77 12]# tail -f out.out
20230509 02:00 --- 导出 --- monitor_caiji --- video_brief --- 数据
20230509 02:00 --- 导出 --- monitor_caiji --- video_list --- 数据
相关文章:
MySQL数据库备份脚本
PS:此脚本简单易懂,根据实际情况修改个别参数测试后即可使用,如有错误请指出! 1.MySQL数据库备份脚本 #!/bin/bashuser pw ip dateYdate "%Y" date2date "%Y%m%d" date3date "%Y%m%d %H:%M" date…...
【2023 · CANN训练营第一季】应用开发深入讲解——第三章应用调试
学习资源 日志参考文档 应用开发FAQ 日志主要用于记录系统的运行过程及异常信息,帮助快速定位系统运行过程中出现的问题以及开发过程中的程序调试问题。 日志分为如下两大类: 系统类日志:系统运行产生的日志。主要包括: Contro…...
黎曼几何与黎曼流形
目录 0.黎曼几何 1. 欧几里得几何与黎曼几何的区别 2.黎曼流形 3.黎曼距离 4.切空间 5.黎曼均值 6. SPD矩阵如何形成黎曼流型 7.切线空间映射 8.同余变换和同余不变 9.黎曼对齐 科普性笔记,做了解,不深入。 0.黎曼几何 黎曼几何是一种基于欧几…...
lua | 运算符与字符串
目录 一、运算符 算数运算符 关系运算符 逻辑运算符 其他运算符 运算符优先级 二、字符串 转义字符 方法与用途 字符串截取 字符串大小转换 字符串查找与反转 字符串格式化 字符与整数的转换 匹配模式 本文章为笔者学习分享 学习网站:Lua 基本语法 | …...
NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成
NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成 原文来自:VERITAS 中文社区 2023-04-27 在执行恢复任务时,手动提取、更新数据库和实例并将其附加到 PostgreSQL 和 MySQL 是常规操作。而在最新的 NetBackup 10.2 版本中&am…...
ADRV9002官方例程开发过程中遇到的问题
开发环境:Vivado2021.2 HDL版本:hdl_2021_r2 GitHub - analogdevicesinc/hdl at hdl_2021_r2 no-OS版本:no_OS-2021_R2 GitHub - analogdevicesinc/no-OS at 2021_R2 (PS:也可以用Vivado2019.1开发,…...
Figma转换为sketch,分享这3款工具
在我们的设计工作中,我们经常会遇到各种各样的设计文件相互转换的问题。 你经常为此头疼吗?当你遇到Figma转换Sketch文件的问题时,你是如何解决的?Figma转换Sketch文件有工具吗? 根据众多设计师的经验,本…...
淘宝天猫1688京东商品详情API接口,封装接口可高并发
要提供商品详情数据需要知道具体的商品信息,但通常商品详情数据应包括以下内容: 商品名称:商品的名称,以方便顾客对其进行识别和区分。 商品描述:一段让顾客能够全面认识商品的描述。应能够有效地展示商品的特性、功能…...
虹科荣誉 | 虹科工业物联网产品荣获中国自动化产业年会用户信赖产品奖!
2023 虹科荣获2021年度中国自动化产业年会用户信赖产品奖 近日,2023中国自动化产业年会于北京隆重举行。虹科工业物联网的产品“OPC UA Tunneller软件”凭借其产品优势和市场美誉度,通过层层选拔,在本次大会中荣获2021年度用户信赖产品奖。…...
SwiftUI 如何让文本自动支持查找和替换功能?
概览 有些情况下,我们需要为文本编辑器实现文本的查找和替换功能(find & replace),如果完全靠自已撸码还是比较棘手的。 所幸的是,从 SwiftUI 4.0 (iOS 16)开始,Apple 已经将查…...
SpringCloud全面学习笔记之初尝美妙篇
目录 前言初识微服务单体架构分布式架构微服务架构初见SpringCloud微服务治理分布式服务架构案例 微服务组件及使用Eureka注册中心提供者和消费者Eureka的结构和作用搭建Eureka服务注册服务服务发现Eureka注册服务总结 Ribbon负载均衡原理负载均衡原理负载均衡策略懒加载 Nacos…...
Spring MVC框架
Spring MVC框架 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spri…...
Illustrator如何使用图层与蒙版之实例演示?
文章目录 0.引言1.绘制可爱冰淇淋图标2.霓虹渐变立体文字海报3.炫彩花纹背景 0.引言 因科研等多场景需要进行绘图处理,笔者对Illustrator进行了学习,本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结,…...
Office Tool Plus的使用
是否为安装,卸载,激活Office而烦恼? 下载 地址:Office Tool Plus 官方网站 - 一键部署 Office 安装office 先安装Office,Office_Pro_Plus_2021_LTSCProjectVisio_x64_zh_CN_VL_2022-02 注意,要安装批量…...
射频PCB 设计的六大条技巧
即使是最自信的设计人员,对于射频电路也往往望而却步,因为它会带来巨大的设计挑战,并且需要专业的设计和分析工具。这里将为您介绍六条技巧,来帮助您简化任何射频PCB 设计任务和减轻工作压力! 1、保持完好、精确的射频…...
优化了成本和安装难度后,UWB信标能否取代蓝牙信标?
1 我们做安U3号是要解决什么问题? (1)信标式设计,解决传统UWB基站安装过程繁琐复杂的问题 传统UWB基站在安装过程中遇上的难题: l 安装位置选取问题:UWB基站的准确度与其安装位置有很大关系,…...
深入理解Java虚拟机——垃圾回收算法
1.前言 垃圾回收需要完成的三件事 首先我们需要明白垃圾回收需要完成的三件事: 哪些内存需要回收 堆内存中的对象所使用的内存方法区中的废弃的常量以及不再使用的类型 什么时候回收 当对象死亡方法区中某些内容(常量和类型)不再被使用 如…...
git-rebase和merge
A-----B----C----D master E----F-----G feature 为了把main分支里新增的代码应用在你的feature分支,你有两种方法:merge 和 rebase。 merge git checkout feature git merge main A-----B----C----D master E----F-----G -----* feature (合并master…...
【JavaWeb 用户认证】Cookie、Session、Token、JWT、Interceptor、SpringBoot、Spring Security
Token基本了解:【详细阐述Token的来源】公钥私钥基本了解:【理解公钥】 文章目录 一、Cookie 经典介绍以及使用案例二、Session 经典介绍以及拦截登录案例三、Token MySQL 的基本介绍及其基本使用四、JWT 基本介绍及其基本讲解五、SpringBoot 使用拦截器…...
6个月的测试,来面试居然要15K,我一问连5K都不值
2023年4月份我入职了深圳某家创业公司,刚入职还是很兴奋的,到公司一看我傻了,公司除了我一个自动化测试,公司的测试人员就只有2个开发3个前端1个测试还有2个UI,在粗略了解公司的业务后才发现是一个从零开始的项目&…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
