Memory modules in server

Jan 19th, 2011 | Posted by

Today I must collect information about memory modules, which installed on several servers.
Of course every system administrator know about command:

dmidecode

which grab all required information.
But it command not very human-readable and when numbers of servers to examine increased – it become very boring to get useful information.
Okay, I’ve write very simple bash – parser to get only what I need.
Maybe, it will help someone else.

#!/bin/bash
#lanselot 2011
SERVERNAME=`uname -n`
SERVERTYPE=`dmidecode | grep “Product Name” | awk -F “:” ‘{print $2}’`
MEMSLOT=`dmidecode -t 17 | grep “Memory Device” | wc -l`
EMPTYSLOT=`dmidecode -t 17 | grep “No Module Installed” | wc -l`
ACTIVESLOT=`echo “$MEMSLOT-$EMPTYSLOT” | bc`
TOTALMEM=`dmidecode -t 17 | grep -v “No Module Installed” | grep “Size” | awk ‘{print $2}’ | xargs -L100 | tr ‘ ‘ ‘+’ | bc`
echo -e “\e[1;37m ServerName: $SERVERNAME”
echo -e “Servertype: $SERVERTYPE”
echo -e “\e[1;37m Slots:\e[1;32m $MEMSLOT\e[1;37m. Used:\e[1;33m $ACTIVESLOT\e[1;37m, empty:\e[1;31m $EMPTYSLOT”
echo -e “\e[40m \e[0;37m”
echo -e “\e[1;37mTotal memory:\e[1;32m $TOTALMEM\e[1;37m Mb”
echo -e “\e[40m \e[0;37m”
echo “Modules:”
dmidecode -t 17 | grep -v -E “No Module Installed|Unknown” | grep -A 8 “Size” | grep -v -E “Type Detail|Locator:”

Or simply

wget http://lanselot.me/scripts/meminfo

Of course, it is very easy to rewrite it for any data you need.

Tags: ,
No comments yet.