前面介绍了一个简单的脚本,用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