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 相关文章推荐
朴素贝叶斯算法的python实现方法
Nov 18 Python
浅谈Python中的数据类型
May 05 Python
Python开发的实用计算器完整实例
May 10 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
对python 读取线的shp文件实例详解
Dec 22 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
python批量识别图片指定区域文字内容
Apr 30 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
详解用python生成随机数的几种方法
Aug 04 Python
Python列表切片常用操作实例解析
Dec 16 Python
python 日志 logging模块详细解析
Mar 31 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 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实现快速排序的三种方法分享
2014/03/12 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
原生js实现购物车
2020/09/23 Javascript
python使用htmllib分析网页内容的方法
2015/05/08 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
应届专科生个人的自我评价
2014/01/05 职场文书
高中生职业规划范文
2014/03/09 职场文书
市政管理求职信范文
2014/05/07 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
生产设备维护保养制度
2015/08/06 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书