MySql备份-导入
1 #/usr/bin/python 2 # -*- coding:utf-8 -*- 3 4 import ConfigParser 5 import os 6 import subprocess 7 import re 8 import datetime 9 10 """ 11 备份数据库 12 删除数据库 13 导入数据库 14 """ 15 16 mysqlbackup_Dir = 'mysqlbackup' # 备份mysql的目录 默认在当前目录下创建这个目录 17 now_time = datetime.datetime.now().strftime('%Y-%m-%d_%H_%M') 18 query_data_file = '/tmp/log.mysqlDatabaseBackupForCoremail_%s' % now_time # 输出的日志 19 20 cf = ConfigParser.ConfigParser() 21 datasource = '/home/coremail/conf/datasources.cf' 22 cf.read(datasource) 23 mysql_bin = "/home/coremail/mysql/bin/mysql" 24 db_server = cf.get('cm_md_db', 'Server') 25 db_port = cf.get('cm_md_db', 'Port') 26 db_user = cf.get('cm_md_db', 'User') 27 28 def get_mysql_password(): # 获取数据库的登陆密码 29 with open(datasource) as f: 30 for line in f: 31 password_line = re.search('([Ee]ncpassword)', line) 32 if password_line: # 将加密的密码解密 33 encpassword = line.strip().split('"')[1] 34 db_password_stdout = subprocess.Popen('/home/coremail/bin/cmxdb decrypt %s' % encpassword, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 35 db_password = db_password_stdout.stdout.readlines()[1] 36 break 37 password_line2 = re.search('([Pp]assword)', line) 38 if password_line2: # 获取没有加密的密码 39 db_password = line.strip().split('"')[1] 40 break 41 return db_password 42 43 44 def connect_mysql(mysqlDatabase): 45 mysqlbackup_file = os.path.join(mysqlbackup_Dir, '%s_%s.sql' % (mysqlDatabase.strip('"'), now_time)) 46 print '/home/coremail/mysql/bin/mysqldump -u%s -p%s -h%s -P%s --databases %s > %s' % (db_user, get_mysql_password().strip(), db_server, db_port, mysqlDatabase, mysqlbackup_file) 47 48 def backup_mysql(): 49 print "备份mysql数据库" 50 51 52 def delete_mysql_database(): 53 pass 54 55 def import_mysql_database(): 56 pass 57 58 59 if __name__ == '__main__': 60 connect_mysql("cmxt")