#!/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. HDU 4513 吉哥系列故事——完美队形II( Manacher变形 )

    链接:传送门 思路:根据完美队形的定义,可以得知,完美队形实质上是 回文串 + 序列出现峰,因为是在回文串中再次增加了一个要求,所以可以对 Manacher 进行改造,改造的部分应该为暴力匹配的循环 ...

  2. Zookeeper分布式锁解决方案具体代码

    定义一个公共资源订单生成类: package com.itmayiedu.lock; import java.text.SimpleDateFormat; import java.util.Date; ...

  3. 【codeforces 805B】3-palindrome

    [题目链接]:http://codeforces.com/contest/805/problem/B [题意] 让你生成一个只包含a,b,c的字符串; 要求c出现的次数最少,且任意一个 长度为3的子串 ...

  4. (3)Spring Boot热部署【从零开始学Spring Boot】

    在编写代码的时候,你会发现我们只是简单把打印信息改变了下,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来之后就真的是打几个Hello World之后就下班了.那么如何解决热部署的问题呢?那 ...

  5. php 文件夹 与 文件目录操作

    php文件夹操作函数 string basename ( string path [, string suffix] )给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是 ...

  6. gem update --system

    gem update --system 修改完gem sources之后,进行gem update: gem update --system 之后的输出: C:\Sites\test01>gem ...

  7. linux入门基础——linux用户基础

    这篇内容是linux用户基础,相关内容见linux改动username和ubuntu改动username和主机名. 用户.组 当我们使用linux时,须要以一个用户的身份登入,一个进程也须要以一个用户 ...

  8. hdu 3074 求区间乘积

    线段树水题 #include<stdio.h> #include<string.h> #include<iostream> using namespace std; ...

  9. 门面模式(Facade)

    一:定义 提供一个统一的接口代表子系统内部的一组接口.门面模式提供一个高层的接口,使得子系统更易于使用.   二:经验 2.1 window系统的软关机(不是直接断电)是一个过程, 它自己背后会做很多 ...

  10. 希尔加密算法(湖南师范大学第六届大学生计算机程序设计竞赛)hnuoj11552

    解密 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 2, Accept ...