> Hi, > Im fairly new to programming in python, and have a question. > Im looking to build a program that monitor's certain things on my Linux > system. for instance disk space. What is the best way to monitor a Linux > server without using to much resources? > Should I execute shell commands and grab the output of them? Or should i use > SNMP. Or is there a better way? > Thanks in advance! > de Haan
de Haan: I'm guessing from the text of your message that this is a single, stand-alone system. Nagios and cacti are complete overkill for system monitoring on a single machine. Here are some other options that you can try: * GUI monitoring - gkrellm is great for this. You can run it and see performance graphs and monitors right in a little app on your desktop. * Command line monitoring - it's pretty easy to cobble together a python script that monitors things like load average, memory, disk space, etc. Hint: you can get a *lot* of useful info from the /proc directory, for example, /proc/meminfo, /proc/loadavg, etc. Here's a quickie that I built for a client, it watches the 15 minute load average. #!/usr/bin/env python ''' File: load_average_watcher.py Author: Sean Carolan Description: Watches 15 minute load average and alerts sysadmin if it gets over a certain level. ''' import smtplib from email.MIMEText import MIMEText threshhold = 3.0 sender = 'r...@server.com' recipient = 'sysad...@example.com' def sendMail(): msg = MIMEText("Alert - system load is over "+str(threshhold)) msg['Subject'] = 'System Load Alert' msg['From'] = sender msg['To'] = recipient s = smtplib.SMTP() s.connect() s.sendmail(sender, [recipient], msg.as_string()) s.close() for line in open('/proc/loadavg'): #If the load average is above threshhold, send alert loadav = float(line.split()[2]) if loadav < threshhold: print '15 minute load average is '+str(loadav)+': OK!' else: print '15 minute load average is '+str(loadav)+': HIGH!' sendMail() _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor