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 ...
随机推荐
- char[],char *,string之间转换
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char *char str[] = "lala";char *str1 ...
- 【题解】Luogu P4091 [HEOI2016/TJOI2016]求和
原题传送门 \[\begin{aligned} a n s &=\sum_{i=0}^{n} \sum_{j=0}^{i}\left\{\begin{array}{c}{i} \\ {j}\e ...
- [Atcoder ARC103D]Robot Arms
题目大意:平面上有$n$个点,要求你构造$m$条边(满足$m\leqslant40$),使得可以从原点到达给定的$n$个点(边必须平行于坐标轴).并要求输出每一条边的方向,每条边必须都使用,无解输出$ ...
- Queue介绍
美人如斯! 前言 队列是一种先进先出(FIFO)的数据结构,与生活中的排队类似,即先来先被服务,这样的特点决定了其具有一定的优先级含义,可以被用于任务调度等场景.队列模型如图: 图1.队列模型 jav ...
- win10企业版|激|活|码
使用下面的激活码升级成企业版 NPPR9-FWDCX-D2C8J-H872K-2YT43 激活后,如果右下角出现未激活的白色字体用cmd命令,管理员窗口运行下面的命令 win10企业版用户请依次输入: ...
- 测试欧气的小游戏-java
Java 用我们学到的知识做处一个小的项目或者游戏等等应该都或多或少的有一点点的成就感吧,下列就是我用所学的基础知识做的猜字谜游戏,并且给他赋予了灵魂哈哈哈.有兴趣的可以尝试的用自己会的知识做一些小的 ...
- Beego 学习笔记11:文件的上传下载
文件的上传和下载 1->文件的上传 文件的上传,采用的是uploadify.js这个插件. 本事例实现的是上传图片文件,其他的文件上传也一样. 2->文件的下载 文件的下载有两个实现的方式 ...
- html5直接调用手机相机照相/录像
现在的h5功能越来越强大.之前做项目时上传功能input type=file时,在IOS下居然可以直接照相...但是在安卓上是不能.后面研究 了下,其实安卓下也可以的. 就是在input上加上capt ...
- 生意bisynes单词bisynes商业
英语bisynes商务概念的提出是改革的产物,有一个演变的过程:贸易部--商业部.外贸部--内贸部--内贸局--商务部.是内外贸一体化的概念. 中文名:商务 外文名:Business,Bisynes商 ...
- python爬虫爬取天气数据并图形化显示
前言 使用python进行网页数据的爬取现在已经很常见了,而对天气数据的爬取更是入门级的新手操作,很多人学习爬虫都从天气开始,本文便是介绍了从中国天气网爬取天气数据,能够实现输入想要查询的城市,返回该 ...