python数据库备份

本文介绍了一个使用Python编写的MySQL数据库备份脚本。该脚本通过mysqldump工具实现数据库备份,并支持单个数据库备份及多个数据库批量备份。此外,脚本还包含了创建备份文件夹、设置备份路径等功能。
摘要由CSDN通过智能技术生成
 1 #!/usr/bin/python
 2 ###########################################################
 3 #
 4 # This python script is used for mysql database backup
 5 # using mysqldump utility.
 6 #
 7 # Written by : Rahul Kumar
 8 # Website: http://tecadmin.net
 9 # Created date: Dec 03, 2013
10 # Last modified: Dec 03, 2013
11 # Tested with : Python 2.6.6
12 # Script Revision: 1.1
13 #
14 ##########################################################
15 
16 # Import required python libraries
17 import os
18 import time
19 import datetime
20 
21 # MySQL database details to which backup to be done. Make sure below user having enough privileges to take databases backup.
22 # 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.
23 
24 DB_HOST = 'localhost'
25 DB_USER = 'root'
26 DB_USER_PASSWORD = '_root_user_password_'
27 #DB_NAME = '/backup/dbnames.txt'
28 DB_NAME = 'db_name'
29 BACKUP_PATH = '/backup/dbbackup/'
30 
31 # Getting current datetime to create seprate backup folder like "12012013-071334".
32 DATETIME = time.strftime('%m%d%Y-%H%M%S')
33 
34 TODAYBACKUPPATH = BACKUP_PATH + DATETIME
35 
36 # Checking if backup folder already exists or not. If not exists will create it.
37 print "creating backup folder"
38 if not os.path.exists(TODAYBACKUPPATH):
39     os.makedirs(TODAYBACKUPPATH)
40 
41 # Code for checking if you want to take single database backup or assinged multiple backups in DB_NAME.
42 print "checking for databases names file."
43 if os.path.exists(DB_NAME):
44     file1 = open(DB_NAME)
45     multi = 1
46     print "Databases file found..."
47     print "Starting backup of all dbs listed in file " + DB_NAME
48 else:
49     print "Databases file not found..."
50     print "Starting backup of database " + DB_NAME
51     multi = 0
52 
53 # Starting actual database backup process.
54 if multi:
55    in_file = open(DB_NAME,"r")
56    flength = len(in_file.readlines())
57    in_file.close()
58    p = 1
59    dbfile = open(DB_NAME,"r")
60 
61    while p <= flength:
62        db = dbfile.readline()   # reading database name from file
63        db = db[:-1]         # deletes extra line
64        dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
65        os.system(dumpcmd)
66        p = p + 1
67    dbfile.close()
68 else:
69    db = DB_NAME
70    dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
71    os.system(dumpcmd)
72 
73 print "Backup script completed"
74 print "Your backups has been created in '" + TODAYBACKUPPATH + "' directory"
复制代码
# chmod +x dbbackup.py
# python dbbackup.py

 做定时任务执行:
crontab -e 
0 2 * * * /usr/bin/python dbbackup.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值