#!/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_backup,如果不存在會建立此目錄 4.用法為加執行許可權,定時任務運行 '''import os,subprocess,datetime '''設定變數'''MYSQL_USER = 'root'MYSQL_PASS = 'pass'MYSQL_HOST = 'localhost'DEL_DAYS = 5 BACK_PATH = '/mysql_backup' '''''時間設定'''CUR_TIME = datetime.date.today() AGO_TIME = datetime.timedelta(days=DEL_DAYS) DEL_TIME = CUR_TIME - AGO_TIME DATABASE = '' '''備份函數'''def mysqldump(): if os.path.isdir(BACK_PATH): os.chdir(BACK_PATH) else: os.mkdir(BACK_PATH) os.chdir(BACK_PATH) database_cmd=subprocess.Popen("mysql -u%s -p%s -h%s -e 'show databases'|grep -v Database|grep -v information" %(MYSQL_USER,MYSQL_PASS,MYSQL_HOST),stdout=subprocess.PIPE,shell=True) DATABASE_NAME=database_cmd.stdout.read().split() for DATABASE in DATABASE_NAME: MYSQLDUMP_FILENAME="/mysql_backup/%s%s.sql"%(CUR_TIME,DATABASE) subprocess.call("mysqldump -u%s -p%s -h%s %s>%s" %(MYSQL_USER,MYSQL_PASS,MYSQL_HOST,DATABASE,MYSQLDUMP_FILENAME),shell=True) if os.path.isfile('${DEL_TIME}${DATABASE}.sql'): subprocess.call("rm ${DEL_TIME}${DATABASE}.sql",shell=True) mysqldump()
指令碼下載地址http://code.taobao.org/p/python2/src/trunk/mysql_backup.py