资源简介

Python3写的脚本,windows上应用的,实现服务器上的数据库通过磁盘映射备份到本地其他机器上的共享文件夹中,服务器上指定文件夹下的文件也备份到指定共享文件夹中,并发邮件通知

资源截图

代码片段和文件信息

#-*- coding:UTF-8 -*-
import time
import pyodbc
import os
import shutil
import zipfile
import shutil

nowtime=time.strftime(‘%Y%m%d%H%M%S‘time.localtime(time.time()))+““
nowtime=‘20180723175116‘

dicParam={
    ## 磁盘映射配置
    ‘DiskMap‘:‘H:‘ # 映射磁盘的名称
    ‘BackServerPath‘:r‘\\备份机的IP或者机器名\xxxxx_backup‘ # 备份机器的路径
    ‘BackServerUSER‘:‘Administrator‘  # 备份机器的登入用户名
    ‘BackServerPWD‘ : ‘xxxxxx‘  # 备份机器的登入密码

    ## 数据库备份配置
    ‘DBBackFileName‘: r“D:/MSSQL/Backup/mydatabase_“ + nowtime + “.bak“ # 数据库备份的路径
    ‘DBServer‘:‘.‘  # 数据库服务器地址.表示本机
    ‘DBUser‘:‘sa‘ #数据库登入用户名
    ‘DBPwd‘:‘xxxxxx‘ #数据库登入用户名
    ‘DBName‘:‘mydatabase‘ # 数据库实例名

    ##文件压缩配置
    ‘RarExePath‘:r‘C:\Program Files (x86)\WinRAR\Rar.exe‘ # Rar的应用程序路径,Rar是用来压缩数据库备份文件用的

    ## 邮件发送配置
    ‘MailSMTPServer‘:‘smtp.163.com‘  #邮件服务器地址
    ‘MailFrom‘:“jnxxxxx@163.com“ # 发送邮件的邮箱
    ‘MailPassword‘:“xxxxx“ # 发送邮件的邮箱登入密码
    ‘MailTo‘:‘shdzhqxzh@163.com‘ # 主送的邮件地址,多人可用隔开,例如‘aaa@163.combbb@163.com‘
    ‘MailCC‘:‘499585080@qq.com‘  # 抄送的邮件地址逗人可用隔开
    ‘MailTopical‘:‘生成服务器备份‘  # 邮件主题

}

## 文件备份的路径[(‘源文件夹路径1‘ ‘目标文件夹路径1‘)(‘源文件夹路径2‘ ‘目标文件夹路径2‘)]
listDir = [
            (r‘C:\Program Files\xxxxxx\xxxFiles‘ dicParam[‘DiskMap‘]+r‘\xxxFiles‘)
            (r‘C:\Program Files\xxxxxx\xxxImage‘ dicParam[‘DiskMap‘]+r‘\xxxImage‘)
        ]

def DatabaseBackUp():
    try:
        print(‘开始备份数据库...‘)
        cmd = “““SQLCMD -S %(DBServer)s -U %(DBUser)s -P %(DBPwd)s -d %(DBName)s -Q“BACKUP DATAbase %(DBName)s to disk=‘%(DBBackFileName)s‘“ “““%dicParam
        print(cmd)
        os.system(cmd)
        if os.path.isfile(dicParam[‘DBBackFileName‘]):
            print(‘备份数据库成功.‘)
            return True;
        else:
            print(‘备份数据库失败.‘)
            return False
    except Exception as e:
        print(e)
        print(‘备份数据库错误.‘)
        return False


def CreateDriverH():
    “创建磁盘映射“
    print(‘开始创建磁盘映射 H...‘)
    os.system(“net use %(DiskMap)s %(BackServerPath)s %(BackServerPWD)s /USER:%(BackServerUSER)s“%dicParam)
    if os.path.exists(“%s\\“%(dicParam[‘DiskMap‘])):
        print(‘创建磁盘映射 %s 成功.‘%(dicParam[‘DiskMap‘]))
        return True
    else:
        print(‘创建磁盘映射 %s 失败.‘%(dicParam[‘DiskMap‘]))
        return False
def DeleteDriverH():
    “删除磁盘映射“
    print(‘开始创建磁盘映射 %s ...‘%(dicParam[‘DiskMap‘]))
    os.system(“net use %s /del /y“%(dicParam[‘DiskMap‘]))
    if os.path.exists(“%s\\“%(dicParam[‘DiskMap‘])):
        print(‘删除创建磁盘映射 %s 失败.‘%(dicParam[‘DiskMap‘]))
        return False
    else:
        print(‘删除创建磁盘映射 %s 成功.‘%(dicParam[‘DiskMap‘]))
        return True

def RarFile(file):
    “““压缩文件成功返回rar文件名,失败返回None“““
    print(‘开始压缩文件 %s...‘%file)
    if os.path.isfile(file):
        filenameextension = os.path.splitext(file)
        newfilename = filename+‘.rar‘
        cmd = ““““ “%s“ a “%s“ “%s“ “““%(dicParam[‘RarExePath‘] newfilename file)
        print(cmd)
        os.syst

评论

共有 条评论