#!/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. Project Euler 34 Digit factorials

    题意:判断一个数 N 的各个位数阶乘之和是否为其本身,找出所有符合要求的数然后求和 思路:此题思路跟 30 题相同,找到枚举上界 10 ^ n <= 9! × n ,符合要求的 n < 6 ...

  2. -1 深度学习基础caffe

    一.反思 二.反向传播 三.ubuntu安装caffe 四.追踪关键词

  3. 分治FFT/NTT 模板

    题目要我们求$f[i]=\sum\limits_{j=1}^{i}f[i-j]g[j]\;mod\;998244353$ 直接上$NTT$肯定是不行的,我们不能利用尚未求得的项卷积 所以要用$CDQ$ ...

  4. PuTTY_0.67.0.0工具链接linux

    1.虚拟机设置 在网络适配器中选中桥接模式,勾选复制物理网络链接状态(p)选项.点击确认. 2.开启虚拟机,检查是否安装有ssh服务器 a.查看是否启动ssh服务器 ps -a | grep ssh ...

  5. nginx启动、关闭与重启命令

    nginx启动 1.启动nginx:./nginx  2.关闭nginx:./nginx  -s  stop 3.重启nginx:./nginx -s reload

  6. 做支付遇到的HttpClient大坑

    前言 HTTPClient大家应该都很熟悉,一个很好的抓网页,刷投票或者刷浏览量的工具.但是还有一项非常重要的功能就是外部接口调用,比如说发起微信支付,支付宝退款接口调用等:最近我们在这个工具上栽了一 ...

  7. POJ2389 Bull Math

    /* POJ2389 Bull Math http://poj.org/problem?id=2389 高精度乘法 * */ #include <cstring> #include < ...

  8. H3C防火墙——回环流量问题(内网终端通过外网IP访问内部服务器)

    http://www.bubuko.com/infodetail-1533703.html

  9. 工具-VIM常用快捷键

    使用vs code 的插件 amvim来快速编辑代码,要熟记下面的命令 由normal模式切换到insert模式的命令键 i 在光标左侧输入正文 I 在光标所在行的行首输入正文 a 在光标右侧输入正文 ...

  10. [Beginning SharePoint Designer 2010]Chapter 3 分析SharePoint页面

    本章概要: 1.SharePoint中主要页面类型 2.SharePoint如何组织页面 3.如何编辑母板页 4.SharePoint母板页中的主要内容占位符