moving projects
This commit is contained in:
58
anduril/status_reporter.py
Executable file
58
anduril/status_reporter.py
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/python
|
||||
#echo server program
|
||||
import socket
|
||||
import subprocess
|
||||
|
||||
help_message="""Recognized commands:
|
||||
HELO (default)
|
||||
SHORT
|
||||
|
||||
"""
|
||||
|
||||
HOST = '' # Symbolic name meaning all available interfaces
|
||||
PORT = 50774 # Arbitrary non-privileged port
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.bind((HOST, PORT))
|
||||
while 1:
|
||||
s.listen(1)
|
||||
conn, addr = s.accept()
|
||||
#print 'Connected by', addr
|
||||
while 1:
|
||||
data = conn.recv(1024)
|
||||
if not data: break
|
||||
message=""
|
||||
if (data=="HELO"):
|
||||
uptime=subprocess.Popen(['uptime'], stdout=subprocess.PIPE)
|
||||
mem=subprocess.Popen(['free -tg | head -n 2'], stdout=subprocess.PIPE,shell=True)
|
||||
users=subprocess.Popen(['who -q | head -n 1'], stdout=subprocess.PIPE,shell=True)
|
||||
message='='*10+socket.gethostname()+'='*10+'\n'+uptime.stdout.read()+mem.stdout.read()+users.stdout.read()
|
||||
uptime.kill()
|
||||
mem.kill()
|
||||
users.kill()
|
||||
elif (data=="SHORT"):
|
||||
load=open('/proc/loadavg','r').read()
|
||||
load=load.split(" ")
|
||||
cpu=open('/proc/cpuinfo','r').read()
|
||||
cpucount=0
|
||||
for row in cpu.split("\n"):
|
||||
if row.startswith('processor'):
|
||||
cpucount+=1
|
||||
loadpercent=int(100*float(load[0])/float(cpucount))
|
||||
|
||||
mem=open('/proc/meminfo','r').read()
|
||||
memory={'total':0, 'free':0, 'cache':0, 'percent':0}
|
||||
for row in mem.split("\n"):
|
||||
if row.startswith('MemTotal'):
|
||||
memory['total']=float(''.join(c for c in row if c.isdigit()))
|
||||
if row.startswith('MemFree'):
|
||||
memory['free']=float(''.join(c for c in row if c.isdigit()))
|
||||
if row.startswith('Cached'):
|
||||
memory['cache']=float(''.join(c for c in row if c.isdigit()))
|
||||
memory['percent']=int(100 - (100*(memory['free']+memory['cache'])/memory['total']))
|
||||
|
||||
message='|'+socket.gethostname()+' L/M:'+str(loadpercent).zfill(3)+'/'+str(memory['percent']).zfill(3)+'% '
|
||||
else:
|
||||
message=help_message
|
||||
conn.send(message)
|
||||
conn.close()
|
||||
|
||||
Reference in New Issue
Block a user