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