導語:
擷取linux系統記憶體的方法有很多種方法,這裡總結如下
版本1
[root@master test]# cat freemem.py
<code>#!/usr/bin/env python</code>
<code>memfile </code><code>=</code> <code>open</code><code>(</code><code>'/proc/meminfo'</code><code>)</code>
<code>while</code> <code>True</code><code>:</code>
<code> </code><code>mem </code><code>=</code> <code>memfile.readline()</code>
<code> </code><code>if</code> <code>'MemTotal'</code> <code>in</code> <code>mem:</code>
<code> </code><code>print</code> <code>'%s'</code> <code>%</code> <code>mem,</code>
<code> </code><code>if</code> <code>'MemFree'</code> <code>in</code> <code>mem:</code>
<code> </code><code>break</code>
<code>memfile.close()</code>
版本2
<code>i </code><code>=</code> <code>0</code>
<code>while</code> <code>i<</code><code>2</code><code>:</code>
<code> </code><code>i</code><code>+</code><code>=</code><code>1</code>
<code> </code><code>print</code> <code>"%s"</code> <code>%</code> <code>mem,</code>
版本3
[root@master test]# cat freemem.py
<code>#coding=utf8</code>
<code> </code><code>memnum </code><code>=</code> <code>mem.split()[</code><code>1</code><code>]</code>
<code> </code><code>if</code> <code>i </code><code>=</code><code>=</code> <code>0</code><code>:</code>
<code> </code><code>print</code> <code>"記憶體總量為:%s"</code> <code>%</code> <code>memnum</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>print</code> <code>"剩餘記憶體為:%s"</code> <code>%</code> <code>memnum</code>
版本4
<code>with </code><code>open</code><code>(</code><code>'/proc/meminfo'</code><code>) as fd:</code>
<code> </code><code>for</code> <code>line </code><code>in</code> <code>fd:</code>
<code> </code><code>if</code> <code>line.startswith(</code><code>'MemTotal'</code><code>):</code>
<code> </code><code>total </code><code>=</code> <code>line.split()[</code><code>1</code><code>]</code>
<code> </code><code>continue</code>
<code> </code><code>if</code> <code>line.startswith(</code><code>'MemFree'</code><code>):</code>
<code> </code><code>free </code><code>=</code> <code>line.split()[</code><code>1</code><code>]</code>
<code> </code><code>break</code>
<code>FreeMem </code><code>=</code> <code>int</code><code>(free)</code><code>/</code><code>1024.0</code>
<code>TotalMem </code><code>=</code> <code>int</code><code>(total)</code><code>/</code><code>1024.0</code>
<code>print</code> <code>"FreeMem:"</code><code>+</code><code>"%.2f"</code> <code>%</code> <code>FreeMem</code><code>+</code><code>'M'</code>
<code>print</code> <code>"TotalMem:"</code><code>+</code><code>"%.2f"</code> <code>%</code> <code>TotalMem</code><code>+</code><code>'M'</code>
<code>print</code> <code>"FreeMem/TotalMem:"</code><code>+</code><code>"%.2f"</code> <code>%</code> <code>((FreeMem</code><code>/</code><code>TotalMem)</code><code>*</code><code>100</code><code>)</code><code>+</code><code>'%'</code>
版權聲明:原創作品,如需轉載,請與作者聯系。否則将追究法律責任
本文轉自 CrazyWing 51CTO部落格,原文連結:http://blog.51cto.com/fklinux/1980629