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