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 ...
随机推荐
- Ext.net自动保存读取GrdPanel列显示状态
//layout保存 function SaveLayOut() { let colVisibleArray = []; for (var i = 0; i < mcp_gridlist.col ...
- maven系列:deploy项目发布和上传repo仓库
在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次. 我们知道,maven的依赖管理是基于版本管理的 ...
- Docker-Compose通过文件声明默认的环境变量
写文目的 在写本文之前,我在做一个docker-compose项目,这里需要在docker-compose.yml配置中引用到宿主机的ip,然而docker-compose并没有命令行一个输入的选项, ...
- Django 路由正则URL
Django 路由正则URL URL1 # 路由 url(r'^detail/', views.detail) {#点击跳转到指定用户下显示信息#} <li><a target=&q ...
- Python中的垃圾回收机制(转)
原文:https://foofish.net/python-gc.html GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他 ...
- 在 Docker 中运行 SpringBoot 应用
创建 SpringBoot 项目 用 Idea 创建一个 SpringBoot 项目,编写一个接口: package cloud.dockerdemo import org.springframewo ...
- Linux学习笔记之Linux系统的swap分区
0x00 什么是swap分区 Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空 ...
- NET Core 导入web.config配置文件
1.首先需要在NET Core项目中引入System.Configuration.ConfigurationManager,它可以读取web.config中的相关配置信息. 2. 将web.confi ...
- 上传文件大小与时间 Web.Config文件 httpRuntime 限制
httpRuntime <httpRuntime executionTimeout="90" maxRequestLength="40960" useF ...
- Linux下快速安装Python3和pip
如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一.安装p ...