python备份mysql数据库
介绍使用python结合mysqldump对mysql数据库进行备份
import os
import sys
import configparser
import time def test_file_path(fp):
if not os.path.exists(fp):
raise RuntimeError('file {} not found'.format(fp)) def backup_mysqldb(backup_param):
test_file_path(backup_param['mysql']['dump'])
test_file_path(backup_param['bak']['cmd_zip'])
cmd1 = '{dump} -u{user} -p{password} -h{hostip} \
-P{port} {dbname}'.format(**backup_param['mysql'])
print(cmd1)
backup_name = time.strftime('mysqlbackup%Y%m%d_%H%M%S')
backup_param['bak']['backup_name'] = backup_name
cmd2 = backup_param['bak']['cmd_bak'].format(**backup_param['bak'])
print(cmd2)
cmd = cmd1 + ' | ' + cmd2
print(cmd)
os.system(cmd) def del_old_backup(backup_param):
backup_path = backup_param['bak']['backuppath']
print(int(backup_param['bak']['keepday']))
t = time.time() - int(backup_param['bak']['keepday']) * 24 * 60 * 60
last_day = time.strftime('%Y%m%d', time.localtime(t))
for fn in os.listdir(backup_path):
fp = os.path.join(backup_path, fn)
print(fp)
if os.path.isfile(fp):
file_day = get_time_from_name(fn)
print(file_day, last_day)
if file_day < last_day:
print('del file ', fn)
os.remove(fp) def get_time_from_name(fn):
# mysqlbackup20140211_172713.7z
import re
pattern = r'.*(\d{8})_\d*'
m = re.match(pattern, fn)
return m.group(1) if __name__ == '__main__':
current_dir = sys.argv[0]
current_dir = os.path.abspath(current_dir)
current_dir = os.path.dirname(current_dir)
os.chdir(current_dir)
print(os.getcwd())
config = configparser.ConfigParser()
config.read_file(open(current_dir + r'\config.ini'))
for k,v in config.items():
for k1,v1 in v.items():
print('{}\n {}:{}'.format(k, k1, v1))
backup_mysqldb(config)
del_old_backup(config)
配置文件
[mysql]
hostip=localhost
user=root
password=12345
port=3306
dbname=test
dump=path_to_mysqldump.exe
[bak]
cmd_zip=.\7z.exe
cmd_bak={cmd_zip} a {backuppath}\{backup_name}.7z -si{backup_name}.bak
backuppath=.\backup
keepday=7
python备份mysql数据库的更多相关文章
- 使用Windows任务计划程序和Python备份Mysql数据库
目标:每日定时自动备份Mysql数据库 方案: 1.安装Python: 使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/re ...
- Python备份MySQL数据库【转】
#!/usr/bin/env python # coding: utf- import os import time ''' defined variable ''' databases=['hch' ...
- 配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)
备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...
- 使用python操作mysql数据库
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
- 实现定时备份mysql数据库并把备份数据库邮件发送
一.先来看备份mysql数据库的命令 1 mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql ...
- 【Python】使用python操作mysql数据库
这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector ...
- 第9课:备份mysql数据库、重写父类、unittest框架、多线程
1. 写代码备份mysql数据库: 1)Linux下,备份mysql数据库,在shell下执行命令:mysqldump -uroot -p123456 -A >db_bak.sql即可 impo ...
- 使用shell脚本定时执行备份mysql数据库
使用shell脚本定时执行备份mysql数据库 #!/bin/bash ############### common file ################ #本机备份文件存放目录 MYSQLBA ...
- Python操作MySQL数据库(步骤教程)
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
随机推荐
- escape、encodeURI以及encodeURIComponent
在标准中,只有字母和数字[0-9a-zA-Z].一些特殊符号"$-_.+!*'(),"[不包括双引号].以及某些保留字,才可以不经过编码直接用于URL.但是比如我们搜索时,往往会输 ...
- 连接虚机中的mysql服务
1:修改mysql库中的user表的root用户的host值为% 2:授权:在mysql命令中执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFI ...
- 10个常见的Redis面试"刁难"问题--转
高可用架构 导读:在程序员面试过程中Redis相关的知识是常被问到的话题.作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题.十分值得一读. 作者简介:钱 ...
- C面向对象编程
C语言面向对象编程 1. 定义一个SuperObject结构体, 里面包含最少的元素, 但是确实每一个对象都含有的, 这样可以实现多态 2. 每一个对象都是基于类的, 我们知道类都是单例对象, 所以我 ...
- Echarts学习笔记
1.Ecahrts使用首先需要引用js文件 Echarts.js 然后定义一个带id的容器(div就可以) 然后就可以初始化echarts了 ↓这是柱形图 <h2 class="con ...
- 反向代理总结-reverse-proxy-with-url-rewrite
iis 反向代理 : 1. 微软文档 https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/reverse-proxy- ...
- 文本框textarea根据输入内容自适应高度 和输入中文和数字换行解决方法
textarea内容可从后台读取或手动输入,常规输入后中文和数字会出现换行问题 <style> #textarea { display: block; margin: 0 auto; ov ...
- iDempiere 使用指南 生产插件(Manufacturing)安装过程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- Movideo SaaS解决方案
类型: 定制服务 软件包: media solution collateral 联系服务商 产品详情 解决方案 概要 Movideo为媒体客户提供的SaaS解决方案部署在位于全球数据中心的Azure云 ...
- Prestashop-1.6.1.6-zh_CN (Openlogic CentOS 7.2)
平台: CentOS 类型: 虚拟机镜像 软件包: prestashop1.6.1.6 commercial content management ecommerce open-source 简体中文 ...