簡體   English   中英

BASH:檢查系統上安裝的內存量作為完整性檢查

[英]BASH: check for amount of memory installed on a system as sanity check

作為bash安裝腳本的一部分,我希望腳本能夠進行完整性檢查,確保目標計算機至少安裝了一定量的內存。 請注意,我並不特別擔心當前使用或分配或可用的內存量 - 就我的目的而言,系統中存在超過XXX GB的內存就足夠了。 我目前的計划(有效,但似乎可能是kludge-y?)是按照以下方式做的事情:

MEM=`free -m  | grep Mem | awk '{print $2}'`

然后在$ MEM變量的bash腳本中進行大於/小於比較。 正如我所說,這有效......但是如果有更優雅的方式來做其他人會建議的話,那只是好奇......

實際上,這不是 kludgy,它是在UNIX領域做事的歷史悠久的方式,使用管道中的簡單工具來構建更復雜的東西。

唯一需要注意的是free -m的輸出格式是否會發生變化。 您可能不會認為這種情況會經常發生,但是,作為使用各種命令行工具的輸出來處理性能監視應用程序的人,它的發生頻率超出您的想象。

如果你想減少一個管道,你可以直接到/proc/meminfo來獲得你想要的東西:

$ cat /proc/meminfo
MemTotal:        8291816 kB
MemFree:         3136804 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:        8291816 kB
LowFree:         3136804 kB
SwapTotal:       1310720 kB
SwapFree:        1077244 kB

所以,如果你對總內存感興趣,你可以使用:

$ totalk=$(awk '/^MemTotal:/{print $2}' /proc/meminfo) ; echo $totalk
8291816

但是,當然,同樣的警告適用於“文件”的格式,因為它可能在將來發生變化。

想想看,你也可以簡化你所擁有的東西,因為管道中不需要單獨的grep

$ totalm=$(free -m | awk '/^Mem:/{print $2}') ; echo $totalm
8097

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM