ホームページ > バックエンド開発 > Python チュートリアル > Python バックアップ Mysql スクリプト

Python バックアップ Mysql スクリプト

WBOY
リリース: 2016-06-16 08:47:42
オリジナル
1347 人が閲覧しました

コードをコピーします コードは次のとおりです:

#!/usr/bin/python

import os
インポート時間
import ftplib
インポート トレースバック

#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)
ftpqueue のファイルパス:

#ファイルをバイナリとして入力用に開きます
f =open( filepath,"rb") f.close()
ftp.quit()
例外:
rlogfile)
トレースバック.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)
戻りパス [pt+1:]

def main():
dbnamelist の dbname:
dumpdb(dbname)

ftpstor()

main()


よく読んでいませんが、次の 2 つの文については、OS の関数を見ることをお勧めします。 Linux と Win で異なる区切り文字を設定する必要はない場合があります。
# config vars
systempathchr="/" #Path 区切り文字、*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'
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート