Build precise queries to find exactly what you need
Press ESC to close
Nagios World Conference 2026: Sept. 14-17 in St. Paul, MN | Learn More
I modified this slightly to report on free space and not used space. I also added a 3rd argument for Swap.
import commands import sys
def checkmem(): mem = “Mem” memprint = “Memory” if(len(sys.argv) > 3): if(sys.argv[3] == “s”): mem = “Swap” memprint = “Swap” a = commands.getstatusoutput(“free -m | grep ” + mem) b = a[1] c = b.split() t = c[1] u = c[2] f = c[3] if (len(sys.argv) > 2): if( int(sys.argv[2]) >= int(f) ): print “CRITICAL — Total ” + memprint, t+”MB”, “Current “+memprint+” Usage is”, u+”MB”, “Free ” + memprint, f+”MB” sys.exit(2) elif( int(sys.argv[1]) >= int(f) ): print “WARNING — Total ” + memprint, t+”MB”, “Current “+memprint+” Usage is”, u+”MB”, “Free ” + memprint, f+”MB” sys.exit(1) else: print “OK — Total “+memprint, t+”MB”, “Current “+memprint+” Usage is”, u+”MB”, “Free ” + memprint, f+”MB” sys.exit(0)
def checkargv(): if (len(sys.argv) == 1 ): print “” print “Enter Warning Limit & Critical Limit” print “Use –help For Help” print “” else: check()
def check(): if ((sys.argv[1]) == “–help”): print “” print “This Script checks Your Unix Memory Utilization & Returns Output” print “Use Command Line Arguments in MB [Megabytes]” print “Use script as ./memory.py ‘Warning Limit’ ‘Critical Limit'” print “Use script as ./memory.py 600 500 (s)” print “Where Argument 600 is Memory Warning Limit in MB [Megabytes] & Argument 500 is Memory Critical Limit in MB [Megabytes]” print “And optional s argument is Swap reporting” else: checkmem()
def main(): checkargv()
if __name__ == ‘__main__’: main()