Openstack 数据库自动化备份python脚本

一、备份脚本

#!/usr/bin/python

import os
import time
import datetime

# MySQL database details to which backup to be done. Make sure below user having enough privileges to take databases backup. 
# To take multiple databases backup, create any file like /backup/dbnames.txt and put databses names one on each line and assignd to DB_NAME variable.

DB_HOST = 'localhost'
DB_USER = 'USER_NAME'
DB_USER_PASSWORD = 'USER_PASSWORD'
BACKUP_PATH = 'FILE_PATH'

# Getting current datetime to create seprate backup folder like "12012013-071334".
DATETIME = time.strftime('%m%d%Y-%H%M%S')

TODAYBACKUPPATH = BACKUP_PATH + DATETIME

# Checking if backup folder already exists or not. If not exists will create it.
print "creating backup folder" 
if not os.path.exists(TODAYBACKUPPATH):
    os.makedirs(TODAYBACKUPPATH)

# Show the databases table:
database_list_command = "mysql -u %s -p%s -h %s --silent -N -e 'show databases'" % (DB_USER, DB_USER_PASSWORD, DB_HOST)

# Starting actual database backup process.
if database_list_command:
    for database in os.popen(database_list_command).readlines():
        database = database.strip()
        if database == 'information_schema': #ignore the database
            continue
        if database == 'performance_schema': #ignore the database
            continue
        if database == 'test': #ignore the test database
            continue
        if database == 'keystone': #backup keystone database and token table structure
            tokendumpcmd = "mysqldump -d keystone token -u " + DB_USER + " -p" + DB_USER_PASSWORD +  " > " + TODAYBACKUPPATH + "/" +  "keystone_token.sql" 
            keystone_dumpcmd = "mysqldump --ignore-table=keystone.token keystone -u " + DB_USER + " -p" + DB_USER_PASSWORD +  " > " + TODAYBACKUPPATH + "/" +  "keystone.sql" 
            os.system(tokendumpcmd)
            os.system(keystone_dumpcmd)
            continue
        dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + database + " > " + TODAYBACKUPPATH + "/" + database + ".sql" 
        os.system(dumpcmd)
else:
    print "Backup FAILED" 

# Bacup completed
print "Backup script completed" 
print "Your backups has been created in '" + TODAYBACKUPPATH + "' directory" 
二、加入crontab计划表
1 0 * * * /usr/bin/python backup.py >> /dev/null 2>&1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Eason哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值