天天看點

​擷取阿裡雲同一賬号下多個bucket容量的腳本

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>&gt;&gt;&gt; </code><code>import</code> <code>time</code>

<code>&gt;&gt;&gt; time.strftime(</code><code>'%Y-%m-%d'</code><code>)</code>

<code>'2017-09-28'</code>

<code>&gt;&gt;&gt; </code><code>type</code><code>(time.strftime(</code><code>'%Y-%m-%d'</code><code>))</code>

<code>&lt;</code><code>type</code> <code>'str'</code><code>&gt;</code>

2)python擷取昨天的日期的辦法:

<code>&gt;&gt;&gt; </code><code>import</code> <code>datetime</code>

<code>&gt;&gt;&gt; now_time </code><code>=</code> <code>datetime.datetime.now()</code>

<code>&gt;&gt;&gt; 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>&gt;&gt;&gt; yes_time_nyr </code><code>=</code> <code>yes_time.strftime(</code><code>'%Y-%m-%d'</code><code>)</code>

<code>&gt;&gt;&gt; </code><code>print</code> <code>(yes_time_nyr)</code>

<code>2017</code><code>-</code><code>09</code><code>-</code><code>27</code>

<code>&gt;&gt;&gt; </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