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控制台英汉汉英电子词典
Apr 23 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
python使用post提交数据到远程url的方法
Apr 29 Python
python网络编程之文件下载实例分析
May 20 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
详解python statistics模块及函数用法
Oct 27 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
python数据类型可变不可变知识点总结
Mar 06 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Django框架中方法的访问和查找
2015/07/15 Python
Python pass详细介绍及实例代码
2016/11/24 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
pytorch forward两个参数实例
2020/01/17 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
行政总经理岗位职责
2013/12/05 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
银行委托书范本
2014/04/04 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
留学推荐信怎么写
2015/03/26 职场文书
人口与计划生育责任书
2015/05/09 职场文书
毕业论文致谢词
2015/05/14 职场文书
怎样写家长意见
2015/06/04 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书