mysql 备份_python-Mysql备份脚本

e35cf97b754059f2015a1995ee85040b.png

记一次血泪史!

国庆七天乐,因为机房所在建筑故障导致停电,中间交换机、中转机全部瘫痪。外部手段无法与服务器进行交互。不出意外,UPS抗了2天后全部宕机。

最终一台centos6.5的mysql服务器彻底挂了。clone、重建、找数据中心恢复最新的数据,然后发现第三方公司的软件备份的是有问题的,无法恢复.......

所以还是自己动手做备份吧。python 备份mysql的脚步来了... 如下。配合系统内的定时任务启动即可。

#!/usr/local/bin/python

"""

此脚本用于Mysql数据库的备份

"""

import os

import time

import datetime

import pipes

# mysql/bin的路径

MYSQLD = ''

# 服务器的IP

DB_HOST = 'localhost'

# 数据库用户名

DB_USER = 'root'

# 数据库密码

DB_USER_PASSWORD = '_mysql_user_password_'

# 需要备份的数据库名

DB_NAMES = ['td_oa', 'td_edu']

# 备份路径

BACKUP_PATH = '/backup/dbbackup'

# 创建今天的备份目录

DATETIME = time.strftime('%Y%m%d-%H%M%S')

NOWBACKUPPATH = BACKUP_PATH + '/' + DATETIME

# 保留多少份备份文件。

try:

os.stat(NOWBACKUPPATH)

except:

os.mkdir(NOWBACKUPPATH)

print("开始执行备份.....")

backupBaseCMD = """mysqldump -h {DB_HOST} -u {DB_USER} -p{DB_USER_PASSWORD} {db} > {NOWBACKUPPATH}/{db}.sql""".format(DB_HOST=DB_HOST, DB_USER=DB_USER, DB_USER_PASSWORD=DB_USER_PASSWORD,NOWBACKUPPATH=NOWBACKUPPATH)

for i, dbname in enumerate(DB_NAMES):

tip = "({0}/{1})".format(i+1, len(DB_NAMES))

print('{0}数据库{1}开始备份...'.format(tip, dbname))

backupCMD = backupBaseCMD.format(db=dbname)

backupResult = os.system(backupCMD)

# 0表示成功执行命令。1 表示异常执行

if backupResult == 0:

print('{0}数据库{1}开始压缩...'.format(tip, dbname))

gzipcmd = "gzip {TODAYBACKUPPATH}/{db}.sql"

os.system(gzipcmd)

print('{0}数据库{1}成功备份...'.format(tip, dbname))

else:

print('{0}数据库{1}备份失败!!!'.format(tip, dbname))

print ("备份执行完成,备份路径为:{0}".format(NOWBACKUPPATH))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值