使用Python脚本伪造指定时间区间的数据库备份
2024-09-01 00:44:51
为监管需求,需要保留时间非常长的数据库备份。存储代价太大。所以存在了,临时抱佛脚,伪造备份。。
以下脚本功能,在于根据一个备份,复制出一段时间的备份。并且更改备份的文件时间戳。可以用shell轻松写出。Python也方便。在此记录一下,方便有人需要。
由于此次为IO密集型操作。所以并发执行也并无明显加速效果,也就单进程执行。代码实在累赘,别介意。
# -*- coding: utf-8 -*-
# project: NewPCFirst
# date: 2019/6/6
# phone: 475982055
# author: dba_yix
# function: 制作备份 from datetime import datetime, timedelta import os class Backuper(object): def __init__(self, datelist, filedir, copysourcefile):
self.datelist = datelist
self.filedir = filedir
self.copysource = os.path.join(filedir, copysourcefile) def create(self):
# 拿到需要备份的目录。
for backdir in self.datelist:
# 判断文件夹是否存在
backfile = os.path.join(self.filedir, str(backdir))
backfiledir = backfile.split(" ")[0]
#
if not os.path.exists(backfiledir):
osCommand = "cp -r %s %s" % (self.copysource, backfiledir)
osCommandChangeDirDateTime = "touch -d %s %s" % (backdir, backfiledir)
osCommandChangeFileDateTime = "touch -d %s %s/*" % (backdir, backfiledir)
os.system(osCommand)
os.system(osCommandChangeDirDateTime)
os.system(osCommandChangeFileDateTime) class DateBetweenTwoDate(object): @staticmethod
def returnDateList(start_date, end_date):
start_date = datetime.strptime(start_date, '%Y-%m-%d')
end_date = datetime.strptime(end_date, '%Y-%m-%d') intervaldays = (end_date - start_date).days __dateList = []
i = 0
while i < intervaldays:
import random
randomSecond = random.randint(0, 120)
generalDate = start_date + timedelta(days=i) + timedelta(seconds=randomSecond) __dateList.append(generalDate)
i += 1 return __dateList def main():
# 得到要制作备份的日期。填入两个事件区间。
datelist = DateBetweenTwoDate.returnDateList('2018-08-01', '2019-06-10') backuper = Backuper(datelist, '/backup/databack/WALLET_APP', '2019-06-06')
backuper.create() if __name__ == '__main__':
main()
最新文章
- 并行计算提升32K*32K点(32位浮点数) FFT计算速度(4核八线程E3处理器)
- UIDynamic - 推动行为: UIPushBehavior
- 谈谈javascript放在哪里更合适
- win7共享wifi
- 获取月份对应的day
- android开发图片分辨率问题解决方案
- webstrom开发微信小程序说明
- 实现一个简单的邮箱地址爬虫(python)
- android 数据持久化——I/O操作
- cocos2d-html5 简易 下拉表单 控件
- jquery mobile小案例
- 1.Linux电源管理-休眠与唤醒
- Jvm 参数笔记
- Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台
- BZOJ1396 识别子串 字符串 SAM 线段树
- python框架之Django(7)-Cookie&;Session使用
- sql server 多表关联更新 update
- redis简介(未完成)
- bzoj1294
- jQuery和CSS3超酷表单美化插件