MySQL备份python代码
import os, time, pymysql, shutil from apscheduler.schedulers.blocking import BlockingScheduler # 定时任务 def getDatabaseNames():
"""
连接数据库
返回指定数据库的所有的表
"""
conn = pymysql.connect(host='10.100.102.224', port=3316, db='indexdb', user='root', passwd='root')
cur = conn.cursor()
cur.execute('show tables;')
tables = cur.fetchall()
cur.close()
conn.close()
return tables def db_bf(path):
"""
创建存储路径
并且备份指定数据库下的表
"""
path = path.strip()
path = path.rstrip("\\") if not os.path.exists(path): # 判断系统是否存在该路径
os.makedirs(path) # ,不存在则创建
tables = getDatabaseNames()
for table in tables:
try:
tablename = table[0]
# 导出db
cmd = "mysqldump -h%s -u%s -p%s %s > %s/%s.sql" % ('10.100.102.224','root', 'indexdb', tablename, folder, tablename)
print(cmd)
os.system(cmd) except Exception as e:
print(e)
return True
else:
return False def mysql_rm(path, timestr):
"""
删除备份目录下超过一定时长的文件
"""
# 列出目录下所有的备份
f = list(os.listdir(path))
print(f)
now_time = timestr[0:8]
# 设置超过的时间
days = 3
for i in f: exit_time = i[0:8]
update_time = int(exit_time) + days
# if update_time < int(now_time) or exit_time == now_time:
# 如果备份的数据超过规定的天数就删除了
if update_time < int(now_time):
shutil.rmtree(path + i)
# with open(self.__filerm_log, 'a') as file_log:
# file_log.write("%s删除备份文件%s \n" % (timestr[0:8], i)) # def hf_bf(path, db):
# """
# 把备份的数据恢复到指定的数据库
# """
# f = list(os.listdir(path))
#
# # for x in f:
# cmd = "mysql-u%s -p%s %s < %s/%s" % ('root', 'root', db, path, f[0])
# print(cmd)
# os.system(cmd) if __name__ == '__main__':
# 创建备份的存储路径,
timestr = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
folder = "mysql_data_bak/" + timestr
db_bf(folder)
# 恢复数据库备份
# hf_bf("mysql_data_bak/20191028114943",'ceshi')
scheduler = BlockingScheduler()
# 函数将会在6,7,8,11,12月的第3个周五的1,2,3点运行
# scheduler.add_job(db_bf,args=[folder,], trigger='cron', month='6-8,11-12', day='3rd fri', hour='0-3')
# 截止到2019-12-30 00:00:00,每周一到周五早上五点半运行
# scheduler.add_job(db_bf,args=[folder,], trigger='cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2019-12-31')
# 每天14.39执行任务
scheduler.add_job(db_bf, args=[folder, ], trigger='cron', hour=14, minute=39)
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
MySQL备份python代码的更多相关文章
- 自动化运维——MySQL备份脚本(二)
使用if语句编写MySQL备份脚本 代码: #!/bin/bash #auro backup mysql db #by steve yu #define backup path BAK_DIR=/da ...
- Python连接MySQL的实例代码
Python连接MySQL的实例代码 MySQLdb下载地址:http://sourceforge.net/projects/mysql-python/ 下载解压缩后放到%Python_HOME% ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- 通过python代码连接MySQL以及插入和显示数据
通过python代码连接MySQL以及插入和显示数据: 数据库huahui创建一个shibie的表,里面有两个varcahr(100)的字段,num和result. import pymysql im ...
- day06 python代码操作MySQL
day06 python代码操作MySQL 今日内容 python代码操作MySQL 基于python与MySQL实现用户注册登录 python操作MySQL python 胶水语言.调包侠(贬义词& ...
- Python代码样例列表
扫描左上角二维码,关注公众账号 数字货币量化投资,回复“1279”,获取以下600个Python经典例子源码 ├─algorithm│ Python用户推荐系统曼哈顿算法实现.py│ ...
- Mysql备份系列(1)--备份方案总结性梳理
mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种备份方案: 一.binlog二进制日志通常作为备份的重要资源,所以再说备份方案之前先总结一下binlog日志 ...
- paip.输入法英文词库的处理 python 代码 o4
paip.输入法英文词库的处理 python 代码 o4 目标是eng>>>中文>>atian 当输入非atian词的时候儿,能打印出 atian pinyin > ...
- mysql的python api
我采用的是MySQLdb操作的MYSQL数据库.先来一个简单的例子吧: 1 2 3 4 5 6 7 8 9 10 import MySQLdb try: conn=MySQLdb.conn ...
随机推荐
- php filter_var()
定义和用法 filter_var() 函数通过指定的过滤器过滤变量. 如果成功,则返回已过滤的数据,如果失败,则返回 false. 语法 filter_var(variable, filter, op ...
- ElasticSearch 线程池类型分析之SizeBlockingQueue
ElasticSearch 线程池类型分析之SizeBlockingQueue 尽管前面写好几篇ES线程池分析的文章(见文末参考链接),但都不太满意.但从ES的线程池中了解到了不少JAVA线程池的使用 ...
- Dart面向对象编程(一)
基本内容概述: 类与对象: 计算属性: void main(){ var rect = new Rectangle(); rect.width = 20; rect.height = 10; prin ...
- DELL OptiPlex 7050M黑苹果纪录
准备工作: 主机:OptiPlex 7050 Micro Desktop Computer 镜像:黑果小兵 macOS Catalina 10.15.1 安装过程: 大体的安装过程,就Dell品牌而言 ...
- XAML加载的四种方式
XAML加载与编译可以分为四种: 仅使用代码进行WPF程序的生成 使用代码和未编译的标记 使用代码和编译过的BAML 1.只是用代码进行窗体的生成:优点是可以随意定制应用程序,缺点是没有可视化编辑窗口 ...
- IIS 图片 JS CSS 500错误
1.检查站点MIME类型是否可以正常加载
- flyway.setBaselineOnMigrate(true);
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayWrappe ...
- 第一次Git上传本地项目到github上 的命令
1.下载Git软件:https://git-scm.com/downloads, 2.下载之后安装就很简单了, 3.邮箱注册 在git bash界面输入如下内容即可完成邮箱的注册: $ git con ...
- Spring MVC异常友好展示
官网 https://docs.spring.io/spring/docs/4.3.25.RELEASE/spring-framework-reference/htmlsingle/ Springmv ...
- Django:RestFramework之-------视图
10.视图 GenericAPIView封装一些方法,将这些方法返回值放在类变量位置上. 1.GenericAPIView视图示例:不怎么用 from api.utils.serializers.pa ...