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. 20175320 2018-2019-2 《Java程序设计》第8周学习总结

    20175320 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 本周学习了教材的第十五章的内容,在这章中介绍了泛型和集合框架,着重讲了泛型类的概念,并介绍了 ...

  2. superset安装配置

    1.安装操作系统依赖 yum -y install vim net-tools yum upgrade python-setuptools yum -y install gcc gcc-c++ lib ...

  3. linux磁盘大小获取和文件大小获取

    一.获取磁盘大小(给入的是文件夹绝对路径):check_disk_available(QString path) { struct statfs diskinfo; unsigned long lon ...

  4. npm是什么,用来干嘛的

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

  5. Tomcat出现端口占用错误

    Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The ...

  6. 有几个PAT

    描述 字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问一共可以形成多 ...

  7. 透过实现小型打包工具理解webpack

    面试经常有问到 webpack,偶遇一篇比较有实用价值的且有利于理解的文章,现总结如下: 本篇文章中要实现的这个迷你打包工具,它主要能实现如下两个功能: ①.将 ES6 转换成 ES5: ②.支持在 ...

  8. dataTable 分页用法总结

    $(function(){ var eData=[ { "area":"濮阳县", "name":"面粉厂", &quo ...

  9. Python super初始化理解过程

    # -*- coding:utf-8 -*-<br data-filtered="filtered"> class A(object): def __init__(se ...

  10. charles-Andriod 手机手机抓包乱码

    然后重启进行进行抓包