思路:

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数据库优化版相关推荐

  1. python连接阿里云数据库_记一次python备份阿里云RDS数据库

    阿里云是目前国内公有云排名靠前的一家企业,安全性较高,但在保证安全的前提下也存在着业务上云后如何进行备份,下面的实例是一个现实的项目案例,主要是数据库上云后如何将数据备份到本地存储设备中,下面是以py ...

  2. mysql rds 定时执行_如何使用脚本自动备份阿里云rds数据库

    vim .mysqldump.sh #脚本都放置到/d20141212/scripts下,创建.mysqldump.sh的文件目的是,这个文件里有数据库的连接信息,要隐藏掉.所以加了.. #!/bin ...

  3. 问题:阿里云RDS数据库Binlog日志一直增大,撑爆磁盘

    问题:阿里云RDS数据库Binlog日志一直增大,撑爆磁盘 最后结果,是因为MySQL语句问题,没有where的条件下,导致更新操作 没有开启安全模式,需要开启sql更改安全模式,禁止没有where的 ...

  4. 【数据库取证篇】阿里云RDS数据库简介

    [数据库取证篇]阿里云RDS数据库简介 ​ 初识RDS基本信息,知其然,再知其所以然-[suy] 文章目录 [数据库取证篇]阿里云RDS数据库简介 (一)云数据库RDS简介 1.各版本功能 (二)RD ...

  5. java rds 数据库_JDBC(java数据库连接)和阿里云RDS数据库

    这两天挖洞的时候,拿到了一个配置生产环境的源码,看一下就能看出来是配置 首先给大家看下源码: 因为我暂时还没有学过java,所以刚看到这个,就没有这个概念,只以为是配置个 首先我们来了解下JDBC:J ...

  6. 云产品学习之路(阿里云01)阿里云rds数据库导出

    参考文档:阿里云rds数据库导出到windows本地数据库中 1.进入阿里云rds控制台,选择实例列表进入rds实例 2.进入备份恢复,选择全量备份下载

  7. 使用GTID,将阿里云RDS数据库,同步到本地MySQL

    目标: 将阿里云RDS数据库,同步到本地MySQL.实现RDS为Master,本地MySQL为Slave 核心技术: GTID复制. 核心步骤:        下载线上物理文件,部署到本地,设置主从关 ...

  8. mysql阿里云RDS数据库从库搭建

    概述 本文主要讲解阿里云RDS数据库的从库搭建,虽然RDS数据库自带一个备库,但是自己手里没有,总觉得不安全. 搭建过程 1. 所需环境 ①一个固定IP的LINUX服务器(windows没试过),无论 ...

  9. SpringBoot 中连接阿里云rds数据库

    今天首次碰到在SpringBoot中使用阿里云rds数据库,搜索一了一番资料,最后成功实现.然后在这里做下自我总结.(个人用到是SSH方式进行连接) 1.在pom文件中添加jar包依赖 <dep ...

最新文章

  1. 数据中台已成气候!大数据架构师如何站上风口?
  2. Neo4j和Titan的对比
  3. java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
  4. 1102面向对象和类原型
  5. 如何让本机时间与局域网的一台电脑的日期同步?
  6. 阿里云 VPC 内网性能测试最佳实践
  7. 辅助排序和Mapreduce整体流程
  8. 【广告技术】使用图神经网络进行信息聚合与推理,解决多证据事实验证问题
  9. 什么是JavaScript垃圾回收?
  10. 什么是康奈尔笔记法?
  11. getResourceAsStream方法获取资源的详解
  12. struts2 中 Actionsupport类的作用
  13. 双网卡实现内外网同时上网
  14. 鲲鹏920服务器支持docker,鲲鹏云服务器上安装Dockerdocker-compose
  15. 43.于电脑右下角的小喇叭不见了的解决
  16. 数据结构与算法 -- 基础篇
  17. google 身份验证器 谷歌服务器,整整10年!谷歌身份验证器终于带来数据转移服务 不用挨个解绑取消啦...
  18. Linux小程序——彩色进度条
  19. 非标产品和标准产品的区别(关于3C)
  20. 微信小程序页面上面的名字怎么改_微信小程序名称可以修改几次? 微信小程序修改名称的方法...

热门文章

  1. 【Docker系列 Swarm】 swarm volume 数据持久化
  2. 纸张大小和铅笔的规格简述
  3. html5支持的几种音频格式介绍
  4. 学好PS的秘密武器之快捷键
  5. 重装系统后服务器无法正常开机,界面报System will find bootable device automatically,No bootable device
  6. bl小说里面有个机器人管家_【连载】小说--妖魔道(二)
  7. 【优化覆盖】基于matlab人工蜂群算法求解无线网络传感覆盖优化问题【含Matlab源码 1097期】
  8. 阿里全球总部年底建成:总投资67亿 建筑面积达98万平方米
  9. Cesium 自定义箭头坐标轴 圆坐标轴(一)
  10. Windows下怎么练习shell脚本