使用Windows任务计划程序和Python备份Mysql数据库
目标:每日定时自动备份Mysql数据库
方案:
1、安装Python:
使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/release/python-371/,安装过程略过。
2、python脚本:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from datetime import date,datetime
import os
import zipfile
import re def search_file(path, pattern):
result_file_list = []
with os.scandir(path) as it:
for entry in it:
if not entry.name.startswith('.') and entry.is_file():
if re.fullmatch(pattern, entry.name):
result_file_list.append(entry.name) return result_file_list # 开始备份
print("开始备份数据库...") # 获取当前时间
cur_date = date.today().strftime("%Y%m%d")
# 数据库IP
host = "localhost"
# 数据库名称
db_name = "db"
# 用户名
db_user_name = "root"
# 密码
db_user_pwd = "password"
# 备份目录
backup_dir = "E:\\DataBaseBackup\\db"
# 备份目录不存在则创建
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
# 备份文件名
file_name = cur_date + ".sql"
# 压缩文件名
zip_file_name = cur_date + ".zip" #切换到备份目录
os.chdir(backup_dir)
# 备份数据库命令
run_backup = "D:\\MySql\\mysql-5.7.21-winx64\\bin\\mysqldump.exe --host=" + host + " --user=" + db_user_name + " --password=" + db_user_pwd + " --protocol=tcp --port=3306 --default-character-set=utf8 " + db_name + " > " + file_name
print(run_backup)
# 执行备份
os.system(run_backup) #文件是否存在
file_exist = os.path.exists(file_name)
if file_exist:
# 压缩文件
with zipfile.ZipFile(zip_file_name,"w",zipfile.ZIP_DEFLATED) as myzip:
myzip.write(file_name) # 删除文件
os.remove(file_name) # 备份结束
print("备份数据库成功") # 清理30天前的过期文件
max_days = 30
old_files = search_file(backup_dir, r"\d{8}.zip")
for old_file in old_files:
str_date = old_file.split('.')[0]
dt = datetime.strptime(str_date,"%Y%m%d")
days = (datetime.today() - dt).days
if days > max_days:
os.remove(old_file)
说明:使用mysql的mysqldump备份数据库(可配置为环境变量),备份的文件将是以当前日期为名称的zip文件,备份文件只保留30天。
3、配置windows任务计划:
3.1、打开“计算机管理”,找到“任务计划程序”,点击“创建任务”
3.2、配置任务信息:

3.3、新建触发器


3.4、新建操作


3.5、确认保存
3.6、运行测试

Over!!Bye Bye
使用Windows任务计划程序和Python备份Mysql数据库的更多相关文章
- 【mysql】备份篇1:使用系统计划任务+mysqldump 定时备份mysql数据库 不用输入密码自动导出sql文件
项目部署在服务期上之后,有了新的需求,需要每月定时备份mysql数据库的所有数据! 查找了网上的多篇文章之后,自己又对bat文件中的mysqldump语句进行改进,可以实现了不用输入密码就能自动定时备 ...
- 计划任务实现定时备份mysql数据库
1.linux平台 30 3 * * * sh /data/tools/mysqlbackup.sh 每天3点半备份数据库mysqlbackup.sh(备份最近5天的数据): #设置数据库名,数据库 ...
- Python备份MySQL数据库【转】
#!/usr/bin/env python # coding: utf- import os import time ''' defined variable ''' databases=['hch' ...
- python备份mysql数据库
介绍使用python结合mysqldump对mysql数据库进行备份 import os import sys import configparser import time def test_fil ...
- Windows任务计划程序起始于参数自动修改
Windows任务计划程序建立后,手工运行可以成功,但计划任务自动运行却不能成功,搜索网络,原来是起始于参数没有配置,这个参数的英文名字是start-in.它保证任务计划程序的WorkingDirec ...
- 在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现
最近需要做一个定时任务功能,从网站找了很多相关的代码,windows实现方法综合起来大概就两种, 一.使用PHP ignore_user_abort 函数 即使关掉浏览器也能正常运行:(个人感觉PHP ...
- Windows系统定时备份MySQL数据库
当一个网站投入使用时,定期备份数据库是必要的事.那么,在Windows系统上,我们该如何做呢? 如下语句可以实现备份及还原MySQL数据库: 备份MySQL数据库 mysqldump -uroot - ...
- 【mysql】备份篇2:使用java程序定期备份mysql数据库
承接备份篇1, 在备份篇1中,使用dat文件加+系统计划任务程序完成mysql定期备份任务 在这一篇,备份使用java程序定期备份mysql数据库. 下面代码和程序思想给出: package com. ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
随机推荐
- 源码编译安装nginx详细步骤
1.下载nginx源码包并解压 可在http://nginx.org/en/download.html下载.tar.gz的源码包,如(nginx-1.4.7.tar.gz) 下载后通过tar -xvz ...
- Android开发 retrofit入门讲解 (RxJava模式)
前言 retrofit除了正常使用以外,还支持RxJava的模式来使用,此篇博客讲解如何使用RxJava模式下的retrofit 依赖 implementation 'com.squareup.ret ...
- AndroidStudio 搜索导入自己需要的库
前言 在Androidx的库应用后,导致有需多系统组件库需要重新 implementation 升级为Androidx, 但是你可能会发现不知道怎么导入他们. 当然除了导入Android的组件库,还 ...
- CSS W3C统一验证工具
CssStats 是一个在线的 CSS 代码分析工具 网址是: http://www.cssstats.com/ 如果你想要更全面的,这个神奇,你值得拥有: W3C 统一验证工具: http://v ...
- django笔记(python web框架)
1.Python 下载地址:https://www.python.org/downloads/ 2.Django 下载地址:https://www.djangoproject.com/download ...
- oracle将查询结果横转纵
SELECT '残疾人|民政|综合治理|计划生育|物业监管|安全生产|环境类|司法信访|党建|社会组织|文化体育|社保' D , '53|52|51|50|49|48|47|5|4|3|2|1' g ...
- SQLite3与C++的结合应用
SQLite并没有一次性做到位,只有下载这些东西是不能放在vs2010中并马上使用的,下载下来的文件中有sqlite3.c/h/dll/def,还是不够用的.我们需要的sqlite3.lib文件并不在 ...
- 存储过程被程序和第三方客户端执行很慢,而sql server management studio执行速度正常
来自:http://blog.csdn.net/pgbiao/article/details/22388945 原因分析:由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时 ...
- 【LGP4714】「数学」约数个数和
题目 众所周知,除数个数函数\(\sigma_0=I^2\),\(I\)就是狄利克雷卷积里的\(1\)函数 于是熟悉狄利克雷卷积的话很快就能看出我们要求的就是\(I\times I^{k}\),即\( ...
- 激活office2016的心路历程
先转换成VOL版本 32位的office2016用如下代码 @echo off :ADMIN openfiles >nul >nul ||( echo Set UAC = CreateOb ...