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动态加载变量示例分享
Feb 17 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
python 简单的多线程链接实现代码
Aug 28 Python
django 常用orm操作详解
Sep 13 Python
Python建立Map写Excel表实例解析
Jan 17 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
Python3 元组tuple入门基础
Feb 09 Python
python with语句的原理与用法详解
Mar 30 Python
Django --Xadmin 判断登录者身份实例
Jul 03 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 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执行批量mysql语句的解决方法
2013/05/02 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php之curl设置超时实例
2014/11/03 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
ThinkPHP控制器详解
2015/07/27 PHP
JS原型对象通俗"唱法"
2012/12/27 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
python实现银行实战系统
2020/02/26 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
C语言50道问题
2014/10/23 面试题
.NET面试10题
2014/02/24 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
医德考评自我评价
2014/09/14 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
关于车尾的标语大全
2015/08/11 职场文书