博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python备份数据库之压缩篇
阅读量:5745 次
发布时间:2019-06-18

本文共 1387 字,大约阅读时间需要 4 分钟。

      前面介绍了一个简单的脚本,用python来给mysql数据库做数据备份,但是只是给数据库做了个简单的备份,我这里准备再给他加点简单的功能,给备份压缩下,代码稍微和之前有点不同,来看下,代码中间又详细的注释,很容易理解:

 

1:  #-*- coding: utf-8 -*-
2:  #!/usr/bin/env python
3:   
4:  import time
5:  import os
6:  password='root'
7:  #name=time.strftime("%Y-%m-%d %H:%M:%S")
8:  BackupFileName=time.strftime("%Y-%m-%d-%H:%M:%S") + '.sql'
9:  #此处经过修改,原来的第一个版本是上面注释掉的一行代码,这样写是为了下面压缩的时候方便点
10:  destDir='/home/mysqlbak/'
11:  #cmd='mysqldump -uroot -p' + password + ' --all-databases > ' + destDir + name + '.sql'
12:  cmd='mysqldump -uroot -p' + password + ' --all-databases > ' + destDir + BackupFileName
13:  print cmd
14:  #上面一行是调试做用,可以注释掉,不影响最终结果
15:  os.system(cmd)
16:  print ("backup Mysql Successs...")
17:   
18:  print ("Beginning to compress file...")
19:  import tarfile
20:  ToTarPath='cd ' + destDir
21:  #备份文件的路径,一开始由于脚本和备份文件不是在一个目录下,
22:  #建议脚本和备份文件放在一个目录下,这个都是可以自己修改的
23:  #os.system(ToTarPath)
24:  #tar=tarfile.open(BackupFileName + '.tar','w')
25:  #上面是吧数据库备份压缩成一个tar文件,但是文件大小没有改变
26:  tar=tarfile.open(BackupFileName + '.tar.bzip2','w|bz2')
27:  #上面是吧文件压缩成tar.bzip2格式的文件,这个压缩比比较厉害
28:  os.system(ToTarPath)
29:  DestTarFile=destDir + BackupFileName
30:  print DestTarFile
31:  tar.add(DestTarFile)
32:  print ("Compress Success...")
33:  tar.close()

 

        我本来是吧数据库的备份文件简单的额压缩成一个tar文件,但是发现压缩之后的体积居然比没压缩之前还要大,所以选择了tar.bzip2的格式来压缩,这样的压缩比是很明显的,这样才有利于我们在网络中的传输啊,这次就讲解到这里,大家感兴趣的话可以吧代码拷贝下来试验下

转载地址:http://myxzx.baihongyu.com/

你可能感兴趣的文章
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
Rust 2018 即将到来:设法从 Rust 2015 过渡
查看>>
一张图道尽程序员的出路
查看>>
Android 开发应该掌握的 Proguard 技巧
查看>>
是时候放弃 Spark Streaming, 转向 Structured Streaming 了 ...
查看>>
企业级 Spring Boot 教程 (十七)上传文件
查看>>
sqli-labs 下载、安装
查看>>
RouteReuseStrategy angular路由复用策略详解,深度刨析路由复用策略
查看>>
Kubernetes API 分析 ( Kube-apiserver )
查看>>
4-学会刷Wi-Fi模块固件(刷AT指令固件)
查看>>
ASP.NET Core 2 学习笔记(五)静态文件
查看>>
Button 使用Command 按钮置灰未更新
查看>>
PostgreSQL控制台以竖行显示
查看>>
CSS-Flex 布局教程:实例篇
查看>>
Java和移动端交互
查看>>
Java SSM 客户管理 商户 管理系统 库存管理 销售报表 项目源码
查看>>
排序优化——如何实现一个通用的、高性能的排序函数
查看>>
IDEA中css文件包红色下划线
查看>>