Python备份Mysql脚本


Posted in Python onAugust 11, 2008
#!/usr/bin/python  import os  
import time  
import ftplib  
import traceback  
#config vars  
systempathchr="/" #路径分割符,*nix用"/" win32用"\\"  
dbuser="root" #数据库用户名  
dbpwd="dbpwd" #数据库密码  
dbnamelist=["dbone","dbtwo","dbthree"] #需要备份那些数据库  
workdir="/path/to/backup/" #本地备份文件夹  
errlogfile="databack.log" #错误日志名  
ftp_addr="192.168.0.2" #ftp地址  
ftp_port="2102" #ftp端口  
ftp_user="databack" #ftp用户名  
ftp_pwd="backpwd" #ftp密码  
ftp_path="/" #存放到ftp路径  
ftpqueue=[]  

def ftpstor():  
    #login  
    bufsize=1024  
    ftp=ftplib.FTP()  
    try:  
        ftp.connect(ftp_addr,ftp_port)  
        ftp.login(ftp_user,ftp_pwd)  
        ftp.cwd(ftp_path)  
        for filepath in ftpqueue:  
            #open file for input as binary  
            f=open(filepath,"rb")  
            #store file as binary  
            print getfilename(filepath)  
            ftp.storbinary("STOR "+getfilename(filepath),f,bufsize)  
            f.close()  
        ftp.quit()  
    except:  
        path=os.path.join(workdir,errlogfile)  
        traceback.print_exc(file=open(path,"a"))  
      
def dumpdb(dbname):  
    global ftpqueue  
    timeformat="%Y%m%d"  
    sqlvalformat="mysqldump -u%s -p\"%s\" \"%s\" >\"%s\""  
    tarvalformat="tar --directory=\"%s\" -zcf \"%s\" \"%s\""  
    nowdate=time.strftime(timeformat)  
    dumpfile=os.path.join(workdir,dbname+".dump")  
    zipfile=os.path.join(workdir,dbname+nowdate+".tar.gz")  
    sqlval=sqlvalformat % (dbuser,dbpwd,dbname,dumpfile)  
    result=os.system(sqlval)  
    tarval=tarvalformat % (workdir,zipfile,dbname+".dump")  
    result=os.system(tarval)  
    os.remove(dumpfile)  
    ftpqueue.append(zipfile)  
def getfilename(path):  
    pt=path.rfind(systempathchr)  
    return path[pt+1:]  
def main():  
    for dbname in dbnamelist:  
        dumpdb(dbname)  
    ftpstor()  
main()

没有仔细看,不过下面这两句,推荐看看os.path模块里面的函数,可能就不用针对linux和win分别设定不同的分隔符了 引用  
#config vars
systempathchr="/" #路径分割符,*nix用"/" win32用"\\"  
看到代码里面是用在得到文件名的,可以试试os.path.basename活着os.path.split了 
 
 >>> import os.path  
  >>> os.path.basename("c:\\test\\aa.txt")  
  'aa.txt'  
  >>> os.path.split("c:\\test\\aa.txt")  
  ('c:\\test', 'aa.txt')  
  >>> os.path.split("c:\\test\\aa.txt")[-1]  
  'aa.txt'  
  >>> os.path.basename("/home/test/aa.txt")  
  'aa.txt'  
  >>> os.path.split("/home/test/aa.txt")  
  ('/home/test', 'aa.txt')  
  >>> os.path.basename("/home/test/aa.txt")  
  'aa.txt'
Python 相关文章推荐
浅谈django中的认证与登录
Oct 31 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
TensorFlow如何实现反向传播
Feb 06 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python模块导入的细节详解
Dec 10 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
python实现XML解析的方法解析
Nov 16 Python
python将字符串转变成dict格式的实现
Nov 18 Python
Python datetime 如何处理时区信息
Sep 02 Python
python备份文件的脚本
Aug 11 #Python
Python 文件操作技巧(File operation) 实例代码分析
Aug 11 #Python
python下如何让web元素的生成更简单的分析
Jul 17 #Python
py中的目录与文件判别代码
Jul 16 #Python
Python Mysql自动备份脚本
Jul 14 #Python
python远程登录代码
Apr 29 #Python
复制粘贴功能的Python程序
Apr 04 #Python
You might like
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP CURL使用详解
2019/03/21 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
python 动态调用函数实例解析
2019/10/21 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
高一学生评语大全
2014/04/25 职场文书
劳动竞赛口号
2014/06/16 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
学术会议通知
2015/04/15 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android