1.脚本

[root@localhost tmp]# more geturl_test.py
#!/usr/bin/env python
#coding=utf- import os, json, urllib, datetime, shutil,sys
from aliyunsdkcore import client
from aliyunsdkrds.request.v20140815 import DescribeBackupsRequest
from aliyunsdkrds.request.v20140815 import DescribeBinlogFilesRequest today_time = datetime.datetime.now()
yes_time = today_time + datetime.timedelta(days = -)
remain_time=today_time + datetime.timedelta(days = -)
save_time = today_time + datetime.timedelta(days = -)
instance_id='testid'
backup_str = sys.argv[] #传入的时间格式为YYYYMMDD
backup_date = datetime.datetime.strptime(backup_str, '%Y%m%d') #转换成时间
end_backup_date=backup_date+datetime.timedelta(days = ) #开始时间加上一天 def Downfullbackupfile(db_instanceid):
startdate = datetime.datetime.strftime(backup_date,'%Y-%m-%d') + 'T00:00Z'
enddate = datetime.datetime.strftime(end_backup_date, '%Y-%m-%d') + 'T00:00Z' clt = client.AcsClient('test','test','test-test')
request = DescribeBackupsRequest.DescribeBackupsRequest()
request.set_accept_format('json')
request.set_action_name('DescribeBackups')
request.set_DBInstanceId(db_instanceid)
request.set_StartTime(startdate)
request.set_EndTime(enddate)
response = clt.do_action_with_exception(request)
#print response
result=json.loads(response)
list = result['Items']['Backup']
for i in list:
DBInstanceId = i['DBInstanceId']
BackupSize = i['BackupSize']
url = i['BackupDownloadURL']
idx_start = url.index('hins')
idx_end = url.index('tar.gz')
file = url[idx_start:idx_end + ].replace('/', '_')
pathname = '/home/oracle/backup/%s/%s' % (DBInstanceId, datetime.datetime.strftime(yes_time,'%Y%m%d'))
if (os.path.isdir(pathname) == False):
os.makedirs(pathname)
filename = '%s/%s' % (pathname, file)
#urllib.urlretrieve(url, filename)
print("%s|%s|%s"%(url ,BackupSize ,file))
return BackupSize,file def record_log(instance_id,flag,source_filesize,dest_filesize):
system_date = datetime.datetime.strftime(datetime.datetime.now(),'%Y%m%d %H:%M:%S')
backup_datetime = datetime.datetime.strftime(today_time,'%Y%m%d %H:%M:%S')
backup_date = datetime.datetime.strftime(yes_time,'%Y%m%d')
logfile="/home/oracle/scripts/backup_log/"+instance_id+".log"
fp = open(logfile, "a+")
fp.write(backup_date+"|"+instance_id+"|"+flag+"|"+backup_datetime+"|"+system_date+"|"+str(source_filesize)+"|"+str(dest_filesize)+"\n")
fp.close def check_backupfile_exist_flag(filepath):
try:
exist_flag=
for filename in os.listdir(filepath):
if filename.strip():
exist_flag=
finally:
return exist_flag def delete_file(instance_id):
savepath = '/home/oracle/backup/%s/%s' % (instance_id, datetime.datetime.strftime(save_time,'%Y%m%d'))
if (os.path.isdir(savepath)):
shutil.rmtree(savepath) def Backupdata():
instance_list = [instance_id]
for instance in instance_list:
Downfullbackupfile(instance) ##new add
def get_FileSize(filePath):
#filePath = unicode(filePath,'utf8')
fsize = os.path.getsize(filePath)
return fsize try:
if __name__ == '__main__':
#filename_dir="/home/oracle/backup/"+instance_id+"/"+datetime.datetime.strftime(yes_time,'%Y%m%d')
#remain_filename_dir="/home/oracle/backup/"+instance_id+"/"+datetime.datetime.strftime(remain_time,'%Y%m%d')
#remain_filename_exist_flag=check_backupfile_exist_flag(remain_filename_dir)
#if remain_filename_exist_flag==1:
# delete_file(instance_id) source_backupsize,source_filename=Downfullbackupfile(instance_id)
#check_dest_filename=filename_dir+"/"+source_filename
#dest_filesize=get_FileSize(check_dest_filename) #file_exist_flag=check_backupfile_exist_flag(filename_dir)
#if (file_exist_flag==1) and (dest_filesize>=source_backupsize):
# record_log(instance_id,"ok",source_backupsize,dest_filesize)
#if file_exist_flag==0:
# record_log(instance_id,"failed",source_backupsize,dest_filesize)
except Exception,e:
record_log(instance_id,"failed",,)
print 'str(Exception):\t', str(Exception)
print 'str(e):\t\t', str(e)
print 'repr(e):\t', repr(e)
print 'e.message:\t', e.message

2.调用

[root@localhost tmp]# python geturl_test.py 20190220

输入时间参数获取rds备份集信息的更多相关文章

  1. 深度学习原理与框架-Alexnet(迁移学习代码) 1.sys.argv[1:](控制台输入的参数获取第二个参数开始) 2.tf.split(对数据进行切分操作) 3.tf.concat(对数据进行合并操作) 4.tf.variable_scope(指定w的使用范围) 5.tf.get_variable(构造和获得参数) 6.np.load(加载.npy文件)

    1. sys.argv[1:]  # 在控制台进行参数的输入时,只使用第二个参数以后的数据 参数说明:控制台的输入:python test.py what, 使用sys.argv[1:],那么将获得w ...

  2. 一步一步写出java swing登录界面,以及输入的参数获取

    经过好几天的学习,研究,接下来说说java swing,以及内嵌浏览器的方法. 一.swing是一个用于java应用程序用户界面的的开发工具包. 例如:接下来我们做个登录界面,简要说明 做之前的构想图 ...

  3. wget下载阿里云RDS备份集

    [root@localhost tmp]# more wget.sh #!/bin/bash download_url=`python /tmp/geturl.py` echo $download_u ...

  4. RMAN增量备份-备份保留策略-设置备份集属性

    RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...

  5. 数据文件、日志文件、归档文件、控制文件、参数文件及RMAN备份数据库信息查询

    一.查看数据库信息:=====================1.数据文件 SQL> SELECT FILE#,STATUS,ENABLED,NAME FROM V$DATAFILE; FILE ...

  6. python 中 使用sys模块 获取运行脚本时在命令行输入的参数

    在python项目的开发的过程中, 经常需要运行各种python脚本, 有时候还需要根据不同的使用情况输入不同的参数, 如果每次都去编辑一下脚本那就太麻烦,太耗费时间了, 这时就可以使用Python自 ...

  7. 一步一步实现web程序信息管理系统之三----登陆业务逻辑实现(验证码功能+参数获取)

    本篇紧接着上一篇文章[一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面] 验证码功能 一般验证码功能实现方式为,前端界面访问一个url请求,后端服务代码生成一个图片流返回至浏览器 ...

  8. 黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)

    得到站点ID为1的用户 <ul> <?php $blogusers = get_users('blog_id=1'); foreach ($blogusers as $user) { ...

  9. 实现php获取mp3文件元信息如播放时间歌曲作者等

    最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; func ...

随机推荐

  1. 解决 AutoMapper ProjectTo 不起作用的问题

    这两天在一个 ASP.NET Core 项目中遭遇了 AutoMapper ProjectTo 不起作用的奇怪问题,虽然在 ProjectTo 中指定了 DTO ,但 EF Core 生成的 SQL ...

  2. 第五周ip通信基础回顾

    广播请求,单播响应,ARP IPV4,IP地址32位二进制代码分为8个位一组 路由器每一个接口都是一个网段 ,网段与网段区分看网络地址 同一段链路是同网段 直接广播:主机号全为1 受限广播:全为1 特 ...

  3. 在linux环境下部署禅道环境

    下载禅道安装包: 1)cd /home/ 2)mkdir app 3)ls 4)cd app/ 5)pwd 6)wget +禅道地址(http://dl.cnezsoft.com/zentao/9.8 ...

  4. pandas(三)

    合并数据集: 创建一个能创建dataframe的函数 def make_data(cols,ind): data={c:[strc(c)+str(i) for i in ind] for c in c ...

  5. C# 图片识别

    项目需要识别图片上的信息,网上搜索试了Asprise-OCR.Microsoft Office Document Imaging(Office 2007) 组件实现两种方式,后者可以识别中文等其他语言 ...

  6. [SpringMVC]自定义注解实现控制器访问次数限制

    我们需要根据IP去限制用户单位时间的访问次数,防止刷手机验证码,屏蔽注册机等,使用注解就非常灵活了 1 定义注解 @Retention(RetentionPolicy.RUNTIME) @Target ...

  7. bfs记录路径,蓝桥杯真题

    题意:在01矩阵中,找到一条从入口到终点的最短路径,并且打印这条路径. 题目链接:http://lx.lanqiao.cn/problem.page?gpid=T291 #include<ios ...

  8. live Templates 活动模板. 配置完之后,就可以快速编码-代码块

    配置:live Templates 活动模板. 配置完之后,就可以快速编码-代码块. 输入startflask敲回车:   就会生成代码:   怎么做到的呢? 如下:   注意第七步: 原本不是cha ...

  9. Fiddler抓包【5】_Fiddler过滤

    1.User Fiters启用 2.Action Action:Run Filterset now是否运行,Load Filterset加载,Save Filterset保存: 3.Hosts过滤 Z ...

  10. nginx解决跨域

    location ~* \.(eot|ttf|woff|woff2|svg)$ { add_header Access-Control-Allow-Origin *; add_header Acces ...