#!/usr/bin/env python
#-*- coding: utf-8 -*-
"""
@Project:Py
@author:sandu
@Email: sandu12345@msn.cn
@Software: PyCharm
@file: mysql_class.py
@time: 2018/1/18 0018 下午 14:02
""" #导入模块
import time
import os DATE = time.strftime('%Y%m%d%H%M%S')
DAYS = 3 class MysqlBak(): def __init__(self,DATE,DAYS):
self.date = DATE
self.days = DAYS
self.__DB_HOST = "127.0.0.1"
self.__DB_PORT = ""
self.__DB_NAME = "demooil"
self.__DB_USER = "demooil"
self.__DB_PASS = "8OvUNQU8CggrahGS"
self.__BIN_DIR = "/usr/local/mysql/bin/mysqldump"
self.__OPTIONS = "--skip-extended-insert --skip-lock-tables --set-gtid-purged=OFF --triggers --routines --events"
self.__MYSQLBACK_DIR = "/home/backup/demooil_bak/"
self.__filebak_log = "/var/log/mysqlbak.log"
self.__filerm_log = "/var/log/mysqlrm.log" def mysql_bak(self):
try:
# all
mysql_file = self.__MYSQLBACK_DIR + str(self.date) + ".sql"
os.system("%s -h%s -u%s -p%s %s -d --databases %s > %s" % (self.__BIN_DIR,self.__DB_HOST,self.__DB_USER,self.__DB_PASS,self.__OPTIONS,self.__DB_NAME,mysql_file))
if os.path.exists(mysql_file):
with open(self.__filebak_log,'a') as f_obj:
f_obj.write('%s success back file %s \n' % (self.date[0:8],mysql_file))
except Exception as e:
with open(self.__filebak_log, 'a') as f_obj:
f_obj.write('%s error back file %s \n' % (self.date[0:8],mysql_file))
f_obj.write("error msg: %s" % e) def mysql_rm(self):
"""删除备份目录下超过一定时长的文件"""
f = list(os.listdir(self.__MYSQLBACK_DIR))
now_time = self.date[0:8]
for i in f:
if i[15:] == 'sql':
exit_time = i[0:8]
update_time = int(exit_time) + self.days
if update_time < int(now_time):
os.remove(self.__MYSQLBACK_DIR + i)
with open(self.__filerm_log, 'a') as file_log:
file_log.write("%s删除备份文件%s \n" % (self.date[0:8], i)) if __name__ == '__main__':
mysql_bak = MysqlBak(DATE,DAYS)
mysql_bak.mysql_bak()
mysql_bak.mysql_rm() # linux定时执行python文件
# crontab
# 0 5 * * * /usr/bin/python /root/demooil_mysql_bak.py >/dev/null 2>&1

使用python备份数据库并删除备份超过一定时长的文件的更多相关文章

  1. 使用python备份指定目录并删除备份超过一定时长的文件

    #!/usr/bin/env python #-*- coding: utf-8 -*- """ @Project:Py @author: @Email: @Softwa ...

  2. SQL server 2008定期的备份数据库及删除job

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库.要实现数据库的 ...

  3. Mongodb自动备份数据库并删除指定天数前的备份

    1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod_bak/mongod_bak_now mkdir -p /home/backup/mongod_bak/ ...

  4. sql server 批量备份数据库及删除N天前的备份数据

    很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 ...

  5. Linux 下定时备份数据库以及删除缓存

    一.定时备份数据库 1.在根目录下创建备份文件夹 #mkdir backup 2.进入到该目录下,创建backup.sh文件 3.赋予文件权限让其变成可执行文件 4.在backup.sh中写备份的脚本 ...

  6. SQL server 2008 Express Edition实现自动备份和自动删除备份

    1.查看SQL 版本: select @@VERSION --可以看到 Express Edition 精简免费版 Microsoft SQL Server 2008 R2 (SP2) - 10.50 ...

  7. 利用shell脚本自动化备份数据库与手动备份还原数据库操作

    1.在linux操作系统上手动备份数据库 mysqldump -h 服务器IP地址 -u root -p数据库密码 --databases 所要备份的数据库名称 > /路径/数据库.sql(自定 ...

  8. mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...

  9. Sql Server自动备份数据库,定期删除备份

    //实现:每天自动备份数据库,定期删除备份 //步骤:[开始]--[所有程序]--[Microsoft SQL Server 2005]--[SQL Server Management Studio] ...

随机推荐

  1. CentOS 安装 VMTools

    1.点击虚拟机,选择 安装 VMware Tools 2.把 压缩包 复制到桌面 3.给当前用户管理员权限,然后解压该压缩包 4.进入到解压后的文件夹 5.执行 vmware-install.pl 6 ...

  2. BeanPostProcessor bean 的后置处理器

    一. 自定 bean 的后置处理器 MyBeanPostProcessor 类.当你在初始化容器中的 bean 之前和之后,都会调用该处理器中的方法 @Component //将该后后置处理器加入到容 ...

  3. MAVEN项目的搭建

    MAVEN能为我们做什么? 1.Jar的声明式依赖性管理 2.项目的自动构建 搭建流程 环境配置 http://maven.apache.org/download.html 下载最新版本Maven 3 ...

  4. Hibernate 一对多

    表与表之间关系回顾(重点) 1 一对多 (1)分类和商品关系,一个分类里面有多个商品,一个商品只能属于一个分类 (2)客户和联系人是一对多关系 - 客户:与公司有业务往来,百度.新浪.360 - 联系 ...

  5. 监控Oracle计数器

  6. [Beginning SharePoint Designer 2010]探索SharePoint Designer

    本章概要: 1.SharePoint Designer是如何进入到微软的工具集中去的 2.SharePoint Designer的基本特性 3.如何创建SharePoint站点 4.如何打开一个已经存 ...

  7. POJ 2184

    简单的01背包,把S看体积,把F看价值,把它们变正数处理就可以了.在处理负数时,因为减一个负数相当于加一个,所以要从前往后. #include <iostream> #include &l ...

  8. 学习ASP.NET MVC系列 - 还有比这更简炼的吗?把复杂的事情变简单了,贡献啊!

    转自

  9. Cocos2d-x 3.0 红孩儿私家必修 - 第一章 初识Cocos2d-x 3.0project

    第一章    初识Cocos2d-x 3.0project Cocos2d-x 3.0出来了,听说与之前版本号相比修改较大 做为一个游戏开发人员.我们应该欢迎Cocos2d-x持续的更新和强大,Coc ...

  10. Navicat Premium 12 模型导出sql

    找了半天,终于找到导出sql了!