Interface with remote computers using Python
monitoring, networking, python
Solution
Here's a simple, cheap solution to get you started
from subprocess import *
p = Popen('ssh servername who', shell=True, stdout=PIPE)
p.wait()
print p.stdout.readlines()
returns (eg)
['usr pts/0 2009-08-19 16:03 (kakapo)\n',
'usr pts/1 2009-08-17 15:51 (kakapo)\n',
'usr pts/5 2009-08-17 17:00 (kakapo)\n']
and for cpuinfo:
p = Popen('ssh servername cat /proc/cpuinfo', shell=True, stdout=PIPE)
Problem
I've just become the system admin for my research group's cluster and, in this respect, am a novice. I'm trying to make a few tools to monitor the network and need help getting started implementing them with python (my native tongue). For example, I would like to view who is logged onto remote machines. By hand, I'd ssh and `who`, but how would I get this info into a script for manipulation? Something like, ``` import remote_info as ri ri.open("foo05.bar.edu") ri.who() Out[1]: hutchinson tty7 2009-08-19 13:32 (:0) hutchinson pts/1 2009-08-19 13:33 (:0.0) ``` Similarly for things like `cat /proc/cpuinfo` to get the processor information of a node. A starting point would be really great. Thanks.