1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<code>#!/usr/bin/env python</code>
<code># -*- coding: UTF-8 -*-</code>
<code>#这个脚本需要python 2.7+版本</code>
<code>from</code> <code>aliyunsdkcore </code><code>import</code> <code>client</code>
<code>from</code> <code>aliyunsdkcms.request.v20170301 </code><code>import</code> <code>QueryMetricListRequest</code>
<code>import</code> <code>time,re,os,datetime</code>
<code>oss_list</code><code>=</code><code>[</code><code>'lechangecloud'</code><code>,</code><code>'lechangecloud-public'</code><code>,</code><code>'lechangehls'</code><code>,</code><code>'online-sz-private'</code><code>,</code><code>'online-sz-public'</code><code>,</code><code>'lechangecloud-public2'</code><code>] </code><code>#这里就是云存储bucket的列表</code>
<code>def</code> <code>gettodayoss(oss):</code>
<code> </code><code>global</code> <code>today_lechangecloud_GB</code>
<code> </code><code>clt </code><code>=</code> <code>client.AcsClient(</code><code>'这里填写ak'</code><code>,</code><code>'这里填写sk'</code><code>,</code><code>'这里填写对应的区域'</code><code>)</code>
<code> </code><code>request </code><code>=</code> <code>QueryMetricListRequest.QueryMetricListRequest()</code>
<code> </code><code>request.set_accept_format(</code><code>'json'</code><code>)</code>
<code> </code><code>request.set_Project(</code><code>'acs_oss'</code><code>)</code>
<code> </code><code>request.set_Metric(</code><code>'MeteringStorageUtilization'</code><code>)</code>
<code> </code><code>today_time </code><code>=</code> <code>time.strftime(</code><code>'%Y-%m-%d'</code><code>) </code><code>+</code><code>" 04:00:00"</code>
<code> </code><code>timestamp_today </code><code>=</code> <code>int</code><code>(time.mktime(time.strptime(today_time, </code><code>"%Y-%m-%d %H:%M:%S"</code><code>))) </code><code>*</code> <code>1000</code>
<code> </code><code>request.set_StartTime(timestamp_today)</code>
<code> </code><code>request.set_Dimensions(</code><code>"{\'BucketName\':"</code><code>+</code> <code>oss </code><code>+</code><code>"}"</code><code>)</code>
<code> </code><code>request.set_Period(</code><code>'3600'</code><code>)</code>
<code> </code><code>result </code><code>=</code> <code>clt.do_action_with_exception(request)</code>
<code> </code><code>#print result</code>
<code> </code><code>storage </code><code>=</code> <code>int</code><code>(re.split(</code><code>'"|}|:'</code><code>,result)[</code><code>34</code><code>])</code>
<code> </code><code>today_lechangecloud_GB </code><code>=</code> <code>(</code><code>'%.2f'</code> <code>%</code><code>(storage</code><code>/</code><code>float</code><code>(</code><code>1073741824</code><code>)))</code>
<code> </code><code>print</code> <code>oss</code><code>+</code><code>"在"</code><code>+</code><code>today_time</code><code>+</code><code>"的容量大小是:"</code><code>+</code><code>today_lechangecloud_GB</code><code>+</code><code>"GB。"</code>
<code>def</code> <code>getyesterdayoss(oss):</code>
<code> </code><code>global</code> <code>yes_lechangecloud_GB</code>
<code> </code><code>now_time </code><code>=</code> <code>datetime.datetime.now()</code>
<code> </code><code>yes_time</code><code>=</code> <code>now_time </code><code>+</code> <code>datetime.timedelta(days</code><code>=</code><code>-</code><code>1</code><code>)</code>
<code> </code><code>yes_time_start </code><code>=</code> <code>yes_time.strftime(</code><code>'%Y-%m-%d'</code><code>)</code><code>+</code><code>" 04:00:00"</code>
<code> </code><code>#yes_time_end = yes_time.strftime('%Y-%m-%d')+" 10:00:00"</code>
<code> </code><code>timestamp_yesterday_start </code><code>=</code> <code>int</code><code>(time.mktime(time.strptime(yes_time_start, </code><code>"%Y-%m-%d %H:%M:%S"</code><code>))) </code><code>*</code> <code>1000</code>
<code> </code><code>#timestamp_yesterday_end = int(time.mktime(time.strptime(yes_time_end, "%Y-%m-%d %H:%M:%S"))) * 1000</code>
<code> </code><code>request.set_StartTime(timestamp_yesterday_start)</code>
<code> </code><code>#request.set_EndTime(timestamp_yesterday_end)</code>
<code> </code><code>yes_result </code><code>=</code> <code>clt.do_action_with_exception(request)</code>
<code> </code><code>#print yes_result</code>
<code> </code><code>yes_storage </code><code>=</code> <code>int</code><code>(re.split(</code><code>'"|}|:'</code><code>,yes_result)[</code><code>34</code><code>])</code>
<code> </code><code>yes_lechangecloud_GB </code><code>=</code> <code>(</code><code>'%.2f'</code> <code>%</code><code>(yes_storage</code><code>/</code><code>float</code><code>(</code><code>1073741824</code><code>)))</code>
<code> </code><code>print</code> <code>oss</code><code>+</code><code>"在"</code><code>+</code><code>yes_time_start</code><code>+</code><code>"的容量大小是:"</code><code>+</code><code>yes_lechangecloud_GB</code><code>+</code><code>"GB。"</code>
<code>def</code> <code>getdiff(oss):</code>
<code> </code><code>diff </code><code>=</code> <code>float</code><code>(today_lechangecloud_GB) </code><code>-</code> <code>float</code><code>(yes_lechangecloud_GB)</code>
<code> </code><code>print</code> <code>"今天与昨天同一时间的云存储差值是"</code><code>+</code><code>str</code><code>(diff)</code><code>+</code><code>"GB。"</code>
<code>if</code> <code>__name__ </code><code>=</code><code>=</code> <code>"__main__"</code><code>:</code>
<code> </code><code>for</code> <code>oss </code><code>in</code> <code>oss_list:</code>
<code> </code><code>oss </code><code>=</code> <code>"'%s'"</code><code>%</code><code>oss</code>
<code> </code><code>gettodayoss(oss)</code>
<code> </code><code>getyesterdayoss(oss)</code>
<code> </code><code>getdiff(oss)</code>
<code>print</code><code>(</code><code>"整个脚本执行结束,感谢您的使用!"</code><code>)</code>
执行效果如下:
<a href="https://s5.51cto.com/wyfs02/M01/A6/4D/wKioL1nMakPjfPapAAKWBp6JSPc022.png" target="_blank"></a>
新的知识点!
1)python获取今天日期的方法:
<code>>>> </code><code>import</code> <code>time</code>
<code>>>> time.strftime(</code><code>'%Y-%m-%d'</code><code>)</code>
<code>'2017-09-28'</code>
<code>>>> </code><code>type</code><code>(time.strftime(</code><code>'%Y-%m-%d'</code><code>))</code>
<code><</code><code>type</code> <code>'str'</code><code>></code>
2)python获取昨天的日期的办法:
<code>>>> </code><code>import</code> <code>datetime</code>
<code>>>> now_time </code><code>=</code> <code>datetime.datetime.now()</code>
<code>>>> yes_time </code><code>=</code> <code>now_time </code><code>+</code> <code>datetime.timedelta(days</code><code>=</code><code>-</code><code>1</code><code>)</code>
<code>>>> yes_time_nyr </code><code>=</code> <code>yes_time.strftime(</code><code>'%Y-%m-%d'</code><code>)</code>
<code>>>> </code><code>print</code> <code>(yes_time_nyr)</code>
<code>2017</code><code>-</code><code>09</code><code>-</code><code>27</code>
<code>>>> </code><code>type</code><code>(yes_time_nyr)</code>
3)在 if __name__ == "__main__" 这一步的时候,我添加了一句 oss = "'%s'"%oss ,这是因为如果不加这句话,那么传递给阿里云的bucket名称格式不正确,正常的格式应该是:
<code>{</code><code>'BucketName'</code><code>:</code><code>'lechangecloud'</code><code>}</code>
不加这句话,得到的格式是缺少单引号的:
<code>{</code><code>'BucketName'</code><code>:lechangecloud}</code>
最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!
本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1969364