用python生成一个导出数据库的bat脚本文件

# 环境: python3.x  

def getExportDbSql(db, index):                  # 获取导出一个数据库实例的sql语句
    sql = ‘mysqldump -u%s -p%s -h%s -P%d --default-character-set=utf8 --databases mu_ins_s%s > %s.s%d.mu_ins_%d.sql‘ %(db[‘user‘], db[‘pwd‘], db[‘host‘], db[‘port‘], index, db[‘server‘], index, index)
    return sql  

def createDbBackupFile(fname, dbList):          # 生成数据库导出的语句保存到文件
    if not fname or not dbList:
        return False  

    f = open(fname, ‘w‘)
    if f:
        f.write(‘echo @off\n\n‘)
        for db in dbList:
            for index in db[‘indexList‘]:
                f.write(‘REM %s.s%d\n‘ %(db[‘server‘], index))
                f.write(‘%s\n\n‘ %getExportDbSql(db, index))
            f.write(‘\n‘)  

        f.close()
        return True  

    return False  

def initDb(user, pwd, host, port, server_name, indexList):  # 生成db字典对象并返回
    db = {}
    db[‘user‘] = user
    db[‘pwd‘] = pwd
    db[‘host‘] = host
    db[‘port‘] = port
    db[‘server‘] = server_name
    db[‘indexList‘] = indexList  

    return db  

def displayDb(db):
    print(‘user =‘, db[‘user‘])
    print(‘pwd =‘, db[‘pwd‘])
    print(‘host =‘, db[‘host‘])
    print(‘port =‘, db[‘port‘])
    print(‘server =‘, db[‘server‘])
    print(‘indexList =‘, db[‘indexList‘])
    print(‘\n‘)  

def displayList(list):
    for item in list:
        displayDb(item)  

if __name__ == ‘__main__‘:
    db1 = initDb(‘root‘, ‘123456‘, ‘127.0.0.1‘, 3306, ‘th1‘, [10000, 1, 3])
    db2 = initDb(‘root‘, ‘123456‘, ‘127.0.0.1‘, 3306, ‘th2‘, [10000, 1])  

    dbList = []
    dbList.append(db1)
    dbList.append(db2)  

    #displayList(dbList)  

    createDbBackupFile(‘export00.bat‘, dbList)
# 何问起 hovertree.com

推荐:http://www.cnblogs.com/roucheng/p/pythonyunsuan.html

时间: 2024-12-22 12:38:57

用python生成一个导出数据库的bat脚本文件的相关文章

用 Python 写一个 NoSQL 数据库

本文译自 What is a NoSQL Database? Learn By Writing One In Python. 完整的示例代码已经放到了 GitHub 上, 请 点击这里, 这仅是一个极简的 demo, 旨在动手了解概念. 如果对译文有任何的意见或建议,欢迎 提 issue 讨论, 批评指正. 后续如有更新,可见 博客 . NoSQL 这个词在近些年正变得随处可见. 但是到底 "NoSQL" 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Pytho

python生成一个字典的嵌套

最近写脚本用到python,在网上看到了很多关于如何解析多层嵌套的,但是如何生成一个嵌套的map还是需要看一些python的语法. 目的:生成{1: {'errors': {0: 'd:\helloworld', 1: 'd:\dict'}, 'os': 'windows', 'type': 2}}这样的多层嵌套的数据. d1={} d1.setdefault(1,{})[errors]={} 用同样的方式设置下一侧的嵌套 temp = d1[1] temp.setdefault('errors

用 Python 写一个 NoSQL 数据库Python

NoSQL 这个词在近些年正变得随处可见. 但是到底 "NoSQL" 指的是什么? 它是如何并且为什么这么有用? 在本文, 我们将会通过纯 Python (我比较喜欢叫它, "轻结构化的伪代码") 写一个 NoSQL 数据库来回答这些问题. OldSQL 很多情况下, SQL 已经成为 "数据库" (database) 的一个同义词. 实际上, SQL 是 Strctured Query Language 的首字母缩写, 而并非指数据库技术本身.

python读取一个目录下面的所有sqlite文件 然后写到同一个数据库文件test.db中

import sqlite3 as dbimport osif name=="main": if os.path.exists("./output/test.db"): os.remove("./output/test.db") conn_write = db.connect('./output/test.db') cursor_write = conn_write.cursor() cursor_write.execute("CREA

Python 生产环境Mysql数据库增量备份脚本

Mysql数据库常用的办法是通过mysqldump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍blog介绍xtrabackup的热备工具.下面的脚本是基于xtrabackup实现自动备份数据库的功能. 需求描述: 每天晚上23点,对数据库进行一次完整备份.第二天0-22点,每小时进行一次增量备份.每次备份前把上次的完整备份和23次增量备份移动到指定目录里,保留7天的数据. ps:不要问我,为什么是23点执行完整备份,0点不更好处理吗?bingo,这是

python 写一个类似于top的监控脚本

最近老板给提出一个需要,项目需求大致如下:  1.用树莓派作为网关,底层接多个ZigBee传感节点,网关把ZigBee传感节点采集到的信息通过串口接收汇总,并且发送给上层的HTTP Server: 2.要有数据的反向控制通道,即网关与Server间要保持长连接,采用websocket实现,以此实现给ZigBee传感节点发送控制命令,来实现对ZigBee节点的远程配置操作: 3.树莓派网关本身要与上层Server实现交互,上层Server能够看到网关实时的cpu.内存以及网络上行与下行的带宽等等:

用python写一个专业的传参脚本

问:linux系统命令如ls,它有几十个参数,可带一个或多个参数,可不分先后,用起来是非常的专业.但是自己写的传参脚本,一般只传一个参数,如果传多个,也是固定的顺序,那么如何用python写出更专业的传参脚本呢? 答:使用python自带的getopt模块. 1.语法: import getopt getopt.getopt(args,shortopts, longopts=[]) #函数示例:getopt.getopt(sys.argv[1:],'u:p:P:h',["username=&qu

一个简单的windows bat脚本

今天有一个windows脚本的需求,以前完全没写过windows的命令,无奈之下写出了一个这么low的脚本,这里也记录一下方@echo off @rem 脚本需求: @rem 1.压缩包文件会存放在一个固定路径 @rem 2.解压这个文件 @rem 3.通过java命令,运行解压过后的jar包 @rem 4.获取程序的进程ID,并输出 @rem 5.自己带一个JAVA安装包,用这个包里面的java环境?? @rem 设置环境变量 SET StorageDir=E:\windows脚本\存储路径

WEB版利用NPOI导出数据库数据为Excel文件

上一篇中,我已经提供了NPOI的dll文件下载 没有下载的同学可以通过上一篇进行下载 这里就直接上Demo代码 前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="导出到Excel.aspx.cs" Inherits="导出到Excel" %> <!DOCTYPE html> <html xmlns="http://w