Python备份Mysql脚本_python

复制代码 代码如下:

#!/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'

时间: 2024-07-31 01:05:59

Python备份Mysql脚本_python的相关文章

python备份文件的脚本_python

实际效果:假设给定目录"/media/data/programmer/project/python" ,备份路径"/home/diegoyun/backup/" , 则会将python目录下的文件按照全路经备份到备份路径下,形如: /home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz..... 复制代码 代码如下: import os import shutil import datetime def mai

linux下mysql如何自动备份shell脚本_linux shell

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

用Python脚本备份Mysql数据库

#!/usr/bin/env python #coding=utf8 #author : itnihao #mail : itnihao@qq.com #source : http://code.taobao.org/p/python2/src/trunk/ #version:1.0 ''' 功能:mysql备份.用mysqldump对mysql中各库进行备份 1.user,pass,host,path,del参数为变量 2.默认备份删除周期为5天,备份以天为单位 3.默认备份路径为/mysql

linux中利用python脚本备份mysql、redis、mongodb数据库

安装可以直接用pip执行:  代码如下 复制代码 pip install yunbk github地址如下: https://github.com/dantezhu/yunbk 而用法也非常简单,比如要备份mysql,则代码如下:  代码如下 复制代码 from yunbk import YunBK from yunbk.backend.local import LocalBackend   import sh   backend = LocalBackend('/data/backup')  

教你用bat脚本备份mysql方法

备份mysql的方法其实有很多,但是并不是所有的mysql都能够在linux下运行.windows下备份也是少不了的.下面小编就教大家用bat脚本备份mysql方法.下面一起来学习用bat脚本备份mysql方法吧! rem rem C:Program FilesWinRAR 需要放到 path 下,才能调用rar cli工具 rem rem 跳转到工作目录下 f: cd f:DBBAK rem 设置变量:备份文件名 SET BAK_FILE=MY_DBBAK_%date:~0,-4%.sql r

Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1678653 设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysqldump的自带锁表功能.刷新日志.复制等功能 利用mysqldump命令备份MySQL数据库的脚本(不带

mysqldump使用脚本自动备份mysql数据库

问题描述 mysqldump使用脚本自动备份mysql数据库 在linux服务器使用脚本自动数据库时,报如下错误,备份不成功,求问大神如何解决:Warning: Using a password on the command line interface can be insecure 以下是我的脚本:#!/bin/shDUMP=/usr/local/mysql/bin/mysqldumpOUT_DIR=/home/dbbak/todayOUT_HISTORY_DIR=/home/dbbak/o

python备份脚本提示文件名,目录或卷标语法出错(Windows7)

问题描述 python备份脚本提示文件名,目录或卷标语法出错(Windows7) 1C #Filename:backup_ver1.py import osimport time #1.the files and directories tobe backed up are specified in a listsource=['D:LibraryPcb''D:LibraryPLD'] target_dir='F:DD' target=target_dir+time.strftime('%Y%m

一个简单的MySQL备份Shell脚本_Mysql

#!/bin/bash #this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then mkdir /mydata/data1/backup fi cd /mydata/data1/backup file=$(find . -type f -mtime -7 | grep .*all.sql) #查找7天内是否有备份的文件 echo $file if [ -z $file ] ;then echo "backup