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. Web Api使用Swagger提供在线文档

    1.添加Swashbuckle引用 2.生成XML文件 3.添加XML解析,在接口添加注释信息 4.运行项目输入地址   http://localhost:58254/swagger

  2. 20175303 2018-2019-2 《Java程序设计》第8周学习总结

    20175303 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目 ...

  3. [dev][dpdk][crypto] dpdk加解密设备与IPSEC

    概述 分三部分,加解密框架(crypto framework),加解密设备(crypto dev),安全协议(Security Framework) ×  API,设计思路等,都在加解密框架里:见文档 ...

  4. Servlet(自己实现的Servlet)细节

    Java中无状态的对象就是指某种没用任何属性的仅仅由方法组成的对象. *无状态:无状态方法的好处之一,就是在各种环境下,都可以安全调用.衡量一个方法 是否有状态的,就看它是否改动了其他东西. *有状态 ...

  5. IAB303 Data Analytics Assessment Task

    Assessment TaskIAB303 Data Analyticsfor Business InsightSemester I 2019Assessment 2 – Data Analytics ...

  6. C++ opencv调用resize修改插值方式遇到的坑

    opencv提供的热死则函数原型如下:void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0 ...

  7. pymongo基础

    PyMongo是MongoDB数据库的python模块 MongoDB是由C++语音编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统. win10 安装 4.0 使用官网的配置 使用 n ...

  8. python基础之 正则表达式,re模块

    1.正则表达式 正则表达式:是字符串的规则,只是检测字符串是否符合条件的规则而已 1.检测某一段字符串是否符合规则 2.将符合规则的匹配出来re模块:是用来操作正则表达式的 2.正则表达式组成 字符组 ...

  9. PHP多线程 curl_multi_init 的使用

    php中可以通过CURL处理HTTP请求,其中curl_init()是单线程模式,如果需要对事务处理走多线程模式,那么就需要用到curl_multi_init()函数. 本案例用来测试大并发的情况下 ...

  10. 接口测试工具-tamper data

    1.火狐浏览器插件 安装:1)打开火狐浏览器-alt键-附加组件-搜索tamper data-安装-重启火狐浏览器-在工具下打开tamper data 使用:start tamper 示例:http: ...