python备份数据库之压缩篇-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

python备份数据库之压缩篇

简介:

前面介绍了一个简单的脚本,用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的格式来压缩,这样的压缩比是很明显的,这样才有利于我们在网络中的传输啊,这次就讲解到这里,大家感兴趣的话可以吧代码拷贝下来试验下

本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/967041如需转载请自行联系原作者


world77

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章