mysql database backu

发布时间:2019-08-06 09:14:09编辑:auto阅读(1503)

    mysql database backup use python scripts

    1. #!/usr/bin/env python 
    2. #coding=utf8 
    3. #author : itnihao 
    4. #mail   : itnihao@qq.com 
    5. #source : http://code.taobao.org/p/python2/src/trunk/ 
    6. #version:1.0 
    7.  
    8. ''' 
    9. 功能:mysql备份。用mysqldump对mysql中各库进行备份 
    10. 1.user,pass,host,path,del参数为变量 
    11. 2.默认备份删除周期为5天,备份以天为单位 
    12. 3.默认备份路径为/mysql_backup,如果不存在会建立此目录 
    13. 4.用法为加执行权限,定时任务运行 
    14. ''' 
    15. import os,subprocess,datetime 
    16.  
    17. '''设置变量''' 
    18. MYSQL_USER = 'root' 
    19. MYSQL_PASS = 'pass' 
    20. MYSQL_HOST = 'localhost' 
    21. DEL_DAYS   = 5 
    22. BACK_PATH  = '/mysql_backup' 
    23.  
    24. '''''时间设置''' 
    25. CUR_TIME = datetime.date.today() 
    26. AGO_TIME = datetime.timedelta(days=DEL_DAYS) 
    27. DEL_TIME = CUR_TIME - AGO_TIME 
    28. DATABASE = '' 
    29.  
    30.  
    31. '''备份函数''' 
    32. def mysqldump(): 
    33.     if os.path.isdir(BACK_PATH): 
    34.         os.chdir(BACK_PATH) 
    35.     else
    36.         os.mkdir(BACK_PATH) 
    37.         os.chdir(BACK_PATH) 
    38.     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
    39.     DATABASE_NAME=database_cmd.stdout.read().split() 
    40.     for DATABASE  in DATABASE_NAME: 
    41.         MYSQLDUMP_FILENAME="/mysql_backup/%s%s.sql"%(CUR_TIME,DATABASE) 
    42.         subprocess.call("mysqldump -u%s -p%s -h%s %s>%s" %(MYSQL_USER,MYSQL_PASS,MYSQL_HOST,DATABASE,MYSQLDUMP_FILENAME),shell=True
    43.         if os.path.isfile('${DEL_TIME}${DATABASE}.sql'): 
    44.             subprocess.call("rm ${DEL_TIME}${DATABASE}.sql",shell=True
    45.  
    46. mysqldump() 

    脚本下载地址http://code.taobao.org/p/python2/src/trunk/mysql_backup.py

关键字