一个好用的Python备份mysql的脚本
时间:2021-07-01 10:21:17
帮助过:4人阅读
#!/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
做定时任务执行:
0 2 * * * /usr/bin/python dbbackup.py
一个好用的Python备份mysql的脚本
标签: