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数据库为例,介 ...
随机推荐
- 关于KEIL下的图形化显示和输出问题
一 keil自带的虚拟示波器:只能在软件仿真下使用:右边的这个可以查看变量. 二 SEGGER的工具软件: 1 RTT:可以进行日志输出调试信息输出,需要配置工程,但不占用串口. 2 JSCOPE:可 ...
- qt安装
在以下网页选择一个国内的下载地址即可 http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-5.7. ...
- 如何有效防止DEDE织梦系统被挂木马安全设置(仅供参考)
尊敬的客户,您好! 感谢广大客户对我司工作的信任和支持! 我司在最近的一个多月内陆续发现多起因 DedeCMS 安全漏洞造成网站被上传恶意脚本的事件,入侵者可利用恶意脚本对外发送大量 ...
- HDU——Cover——————【技巧】
Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- winfrom C#树勾选等
AfterCheck /// <summary> /// 树勾选 /// </summary> /// <param name="sender"> ...
- Day6上 括号匹配专项
滑稽的题 T1 #include<iostream> #include<cstring> #include<queue> #include<algorithm ...
- AngularJS 学习(-)Hello world
早期的AngularJS使我们的前端开发模式发生很大的变化,基使用MVC. Model - html 模板:Controller - js脚本; Model 来自于Web API 或其他Service ...
- 微信小程序电商实战-首页(上)
嗨,大家好!经过近两周的精心准备终于开始微信小程序电商实战之路喽.那么最终会做成什么样呢?当然可以肯定不会只做一个静态demo哦,先把我们小程序电商实战的整体架构发出来晒一下,请看下图: 架构图. ...
- python模块详解 re
摘自:python中的正则表达式(re模块) 一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被 ...
- Eclipse 如何修改 Web 项目的名称
Eclipse 切换到 Navigator 视图,能显现出项目下所有的文件便于修改. 1.修改该项目目录下:.project文件 <projectDescription><name ...