参考了备份文件的python脚本。
os.system()执行命令的时候,如果这个命令本身带有空格,这个system()不能正常执行,所以改用subprocess.call()替换os.system()。
# -*- coding: cp936 -*-
# Filename: backup_ver1.3.py
'''备份MS SQL 2005里的库
在Windows系统下调用sqlcmd命令把MS SQL里的库备份到文件,
再用tarfile模块打包压缩这些文件。
备份文件的文件名里包含当天的日期。
1.0
'''
import subprocess
import os
import time
import sys
import tarfile
# 因为压缩目标可能是多个目录,所以先用tar打包,再调用gz/bzip2对tar包做压缩
def backup(target_dir, target_file, source, compression):
'''执行备份操作
'''
# 连结备份文件的目录名和文件名
# 以下两个语句的效果相同
#dist_tar_full_path_filename = '%s%s.tar' % (target_dir, target_file)
dist_tar_full_path_filename = target_dir + target_file + ".tar"
sql_cmd = 'D:\\Program Files\\Microsoft SQL Server\\90\\Tools\\Binn\\sqlcmd.exe'
# 如果目录不存在就建立
if not os.path.exists(target_dir):
os.mkdir(target_dir)
# 打开tar文件,用于追加数据库的