Python 备份阿里云RDS数据库优化版
思路:
1.链接阿里云rds
2.按数据库分别导出sql作为备份(以数据库名作为文件夹名,以每天日期作为文件名直接压缩为.sql.gz)
3.删除过期备份内容
分表版:https://blog.csdn.net/qq_24909089/article/details/83073077
代码示例如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author:
# @Date : 2018/10/15
# !/usr/bin env python3# 你需要导入这个模块
import os
import time
import datetime"""
配置信息
"""
# 需要备份的数据库集合
db_name = ['jian','admin']# 忽略文件(苹果笔记本易产生)
ignore = ['.DS_Store']# 数据库链接配置
db_config = {'host': "127.0.0.1",'user': "root",'pwd': "",
}# 保留天数
save_day = 10# 当前日期
date_time = time.strftime('%Y-%m-%d', time.localtime(time.time()))"""
方法体
"""def create_file(path):"""创建文件夹函数:param path:创建文件路径:return:"""# 去除首位空格path = path.strip()# 去除尾部 \ 符号path = path.rstrip("\\")# 判断路径是否存在if not os.path.exists(path):# 如果不存在则创建目录os.makedirs(path)return Trueelse:# 如果目录存在则不创建return Falsedef export_backup(address):"""导出数据库备份函数:param address: 导出数据库路径:return:"""# ()中的参数 "调用mysqldump -h地址 -u用户名 -p密码 需要备份的数据库名 > 生成的文件名"os.system("mysqldump -h%s -u%s -p%s %s |gzip > %s" % (db_config['host'], db_config['user'], db_config['pwd'], db_name[i], address))def delete_zip(day, folder):"""删除文件函数:param day: 保留天数(多少天以内):param folder: 指定需要检索删除的文件夹:return:"""# 列出文件夹下所有的目录与文件list = os.listdir(folder)for i in range(0, len(list)):path = os.path.join(folder, list[i])if os.path.isfile(path):files = os.path.basename(path)if files not in ignore:# 去除后缀da = files.strip('.sql.gz')# 多少天之前时间now = datetime.datetime.now()delta = datetime.timedelta(days=day)n_days = now - deltabefore_time = n_days.strftime('%Y-%m-%d')# 比较大小time1 = datetime.datetime.strptime(da, "%Y-%m-%d")time2 = datetime.datetime.strptime(before_time, "%Y-%m-%d")if time1 < time2:os.remove(path)print('删除%s天之前的备份%s' % (day, path))"""
调用
"""# 导出数据库备份
for i in range(len(db_name)):# 文件夹地址mkpath = "./%s\\" % db_name[i]# 备份文件地址address = "%s/%s.sql.gz" % (db_name[i], date_time)# 创建文件夹create_file(mkpath)print("文件夹创建完成")# 备份数据库export_backup(address)print("备份数据库已完成:%s" % address)# 删除保留天数之外的文档delete_zip(save_day, db_name[i])print("删除保留天数之外文件已完成:%s" % db_name[i])else:print("已完成%s" % date_time)
注意:如果要挂载crontab自动命令,创建文件夹与导出路径要换成绝对路径。
Python 备份阿里云RDS数据库优化版相关推荐
- python连接阿里云数据库_记一次python备份阿里云RDS数据库
阿里云是目前国内公有云排名靠前的一家企业,安全性较高,但在保证安全的前提下也存在着业务上云后如何进行备份,下面的实例是一个现实的项目案例,主要是数据库上云后如何将数据备份到本地存储设备中,下面是以py ...
- mysql rds 定时执行_如何使用脚本自动备份阿里云rds数据库
vim .mysqldump.sh #脚本都放置到/d20141212/scripts下,创建.mysqldump.sh的文件目的是,这个文件里有数据库的连接信息,要隐藏掉.所以加了.. #!/bin ...
- 问题:阿里云RDS数据库Binlog日志一直增大,撑爆磁盘
问题:阿里云RDS数据库Binlog日志一直增大,撑爆磁盘 最后结果,是因为MySQL语句问题,没有where的条件下,导致更新操作 没有开启安全模式,需要开启sql更改安全模式,禁止没有where的 ...
- 【数据库取证篇】阿里云RDS数据库简介
[数据库取证篇]阿里云RDS数据库简介 初识RDS基本信息,知其然,再知其所以然-[suy] 文章目录 [数据库取证篇]阿里云RDS数据库简介 (一)云数据库RDS简介 1.各版本功能 (二)RD ...
- java rds 数据库_JDBC(java数据库连接)和阿里云RDS数据库
这两天挖洞的时候,拿到了一个配置生产环境的源码,看一下就能看出来是配置 首先给大家看下源码: 因为我暂时还没有学过java,所以刚看到这个,就没有这个概念,只以为是配置个 首先我们来了解下JDBC:J ...
- 云产品学习之路(阿里云01)阿里云rds数据库导出
参考文档:阿里云rds数据库导出到windows本地数据库中 1.进入阿里云rds控制台,选择实例列表进入rds实例 2.进入备份恢复,选择全量备份下载
- 使用GTID,将阿里云RDS数据库,同步到本地MySQL
目标: 将阿里云RDS数据库,同步到本地MySQL.实现RDS为Master,本地MySQL为Slave 核心技术: GTID复制. 核心步骤: 下载线上物理文件,部署到本地,设置主从关 ...
- mysql阿里云RDS数据库从库搭建
概述 本文主要讲解阿里云RDS数据库的从库搭建,虽然RDS数据库自带一个备库,但是自己手里没有,总觉得不安全. 搭建过程 1. 所需环境 ①一个固定IP的LINUX服务器(windows没试过),无论 ...
- SpringBoot 中连接阿里云rds数据库
今天首次碰到在SpringBoot中使用阿里云rds数据库,搜索一了一番资料,最后成功实现.然后在这里做下自我总结.(个人用到是SSH方式进行连接) 1.在pom文件中添加jar包依赖 <dep ...
最新文章
- 数据中台已成气候!大数据架构师如何站上风口?
- Neo4j和Titan的对比
- java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
- 1102面向对象和类原型
- 如何让本机时间与局域网的一台电脑的日期同步?
- 阿里云 VPC 内网性能测试最佳实践
- 辅助排序和Mapreduce整体流程
- 【广告技术】使用图神经网络进行信息聚合与推理,解决多证据事实验证问题
- 什么是JavaScript垃圾回收?
- 什么是康奈尔笔记法?
- getResourceAsStream方法获取资源的详解
- struts2 中 Actionsupport类的作用
- 双网卡实现内外网同时上网
- 鲲鹏920服务器支持docker,鲲鹏云服务器上安装Dockerdocker-compose
- 43.于电脑右下角的小喇叭不见了的解决
- 数据结构与算法 -- 基础篇
- google 身份验证器 谷歌服务器,整整10年!谷歌身份验证器终于带来数据转移服务 不用挨个解绑取消啦...
- Linux小程序——彩色进度条
- 非标产品和标准产品的区别(关于3C)
- 微信小程序页面上面的名字怎么改_微信小程序名称可以修改几次? 微信小程序修改名称的方法...
热门文章
- 【Docker系列 Swarm】 swarm volume 数据持久化
- 纸张大小和铅笔的规格简述
- html5支持的几种音频格式介绍
- 学好PS的秘密武器之快捷键
- 重装系统后服务器无法正常开机,界面报System will find bootable device automatically,No bootable device
- bl小说里面有个机器人管家_【连载】小说--妖魔道(二)
- 【优化覆盖】基于matlab人工蜂群算法求解无线网络传感覆盖优化问题【含Matlab源码 1097期】
- 阿里全球总部年底建成:总投资67亿 建筑面积达98万平方米
- Cesium 自定义箭头坐标轴 圆坐标轴(一)
- Windows下怎么练习shell脚本