Skip to content

Commit e5b7c36

Browse files
committed
add rdsbak
1 parent 6da4a70 commit e5b7c36

3 files changed

Lines changed: 79 additions & 0 deletions

File tree

RDSBAK/Rds_backup.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/bin/env python
2+
# -*- coding:utf-8 -*-
3+
# _author:kaliarch
4+
5+
from aliyunsdkcore import client
6+
from aliyunsdkrds.request.v20140815 import CreateBackupRequest
7+
import time
8+
import os
9+
import logging
10+
11+
class rdsOper():
12+
def __init__(self,logger):
13+
self.clentoper = client.AcsClient('LTAIhfXlcjyln6tW','GwfAMvR4K2ELmt76184oqLTVgRfAso','cn-shanghai')
14+
self.logger = logger
15+
self.logger.info("------------------------start exec rds backup API log-------------")
16+
def backup_instance(self):
17+
# 设置参数
18+
request = CreateBackupRequest.CreateBackupRequest()
19+
request.set_accept_format('json')
20+
request.add_query_param('DBInstanceId', 'rm-uf6xv35u1x842y61y')
21+
22+
#如果为单库备份,可以添加DBName
23+
# request.add_query_param('DBName', 'mydb')
24+
25+
#BackupMethod为备份方式:Logical:逻辑备份,Physical:物理备份
26+
request.add_query_param('BackupMethod', 'Physical')
27+
#BackupType为备份类型: Auto:自动计算是全量备份还是增量备份;FullBackup:全量备份。默认值为Auto。
28+
request.add_query_param('BackupType', 'Auto')
29+
30+
response = self.clentoper.do_action_with_exception(request)
31+
self.logger.info("rdsbackup mission submission successful!")
32+
self.logger.info(response)
33+
print(response)
34+
35+
36+
class Rds_Log:
37+
def __init__(self,filename):
38+
self.filename = filename
39+
def createDir(self):
40+
_LOGDIR = os.path.join(os.path.dirname(__file__), 'rdsbackuplog')
41+
print(_LOGDIR)
42+
_TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-'
43+
_LOGNAME = _TIME + self.filename
44+
print(_LOGNAME)
45+
LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME)
46+
print(LOGFILENAME)
47+
if not os.path.exists(_LOGDIR):
48+
os.mkdir(_LOGDIR)
49+
return LOGFILENAME
50+
51+
def createlogger(self,logfilename):
52+
logger= logging.getLogger()
53+
logger.setLevel(logging.INFO)
54+
handler = logging.FileHandler(logfilename)
55+
handler.setLevel(logging.INFO)
56+
formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
57+
handler.setFormatter(formater)
58+
logger.addHandler(handler)
59+
return logger
60+
61+
if __name__ == "__main__":
62+
glploger = Rds_Log('rdsbackup.log')
63+
logfilename = glploger.createDir()
64+
logger = glploger.createlogger(logfilename)
65+
66+
app = rdsOper(logger)
67+
app.backup_instance()
68+
69+
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2018-06-04 15:40:41,364 - root - INFO - ------------------------start exec rds backup API log-------------
2+
2018-06-04 15:40:41,767 - root - INFO - rdsbackup mission submission successful!
3+
2018-06-04 15:40:41,767 - root - INFO - b'{"RequestId":"2AA53A09-33D3-4A26-94D3-A745301E3A02"}'

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,10 @@ blog:[利用Python搜索51CTO推荐博客并保存至Excel](http://blog.51cto.
2828
> Python构建自己的代理库
2929
3030
blog:[Python构建自己的代理库](http://blog.51cto.com/kaliarch/2083997)
31+
32+
33+
## Python自定义阿里云RDS备份策略(RDSBAK)
34+
> Python自定义阿里云RDS备份策略
35+
36+
blog:[Python自定义阿里云RDS备份策略](http://blog.51cto.com/blogger/success/2124609)
37+

0 commit comments

Comments
 (0)