国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python備份Mysql腳本

2019-11-25 18:46:51
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#!/usr/bin/python 

import os 
import time 
import ftplib 
import traceback 

#config vars 
systempathchr="/" #路徑分割符,*nix用"/" win32用"http://" 

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用"http://"  
看到代碼里面是用在得到文件名的,可以試試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'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂平县| 汨罗市| 曲靖市| 镇安县| 吴忠市| 金坛市| 来安县| 胶州市| 化德县| 老河口市| 贵定县| 滨海县| 手机| 潼关县| 淳安县| 云梦县| 吉安市| 昆山市| 日土县| 镇雄县| 阿荣旗| 安仁县| 河北区| 武邑县| 西安市| 墨脱县| 拜城县| 高阳县| 安达市| 东莞市| 会宁县| 丽水市| 南木林县| 拉萨市| 丰镇市| 巨野县| 桦川县| 宁海县| 会东县| 乌兰浩特市| 洪江市|