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