2024-04-26 19:13:23 发布
网友
我有8台服务器需要监控。所有服务器都安装了tornado python服务器。其中一个服务器是一个监视器,它可以轮询其他服务器,并在出现问题时通过短信提醒我。
其中一个警报是当用户登录到其中一个服务器时发出的。
如何使用Python来检测谁登录了我的Ubuntu服务器? 我需要将登录的用户返回到主监视器。 我希望这能让事情变得清楚。。
from subprocess import Popen, PIPE, STDOUT who = Popen(['who'],stdin=PIPE, stdout=PIPE, stderr=STDOUT) print who.stdout.read() # Output >>> sudo_O :0 2013-01-14 11:48 (:0) >>> sudo_O pts/0 2013-01-14 11:48 (:0) >>> sudo_O pts/1 2013-01-14 12:41 (:0) >>> sudo_O pts/2 2013-01-14 12:42 (:0)
使用^{}模块,并运行命令who。
who
In [5]: import subprocess In [6]: subprocess.check_output("who") Out[6]: 'monty pts/0 2013-01-14 16:21 (:0.0)\n'
您可以使用:who | wc -l获取当前登录的次数:
who | wc -l
In [42]: !who monty pts/2 2013-01-14 19:09 (:0.0) monty pts/0 2013-01-14 19:07 (:0.0) In [43]: p=Popen(["who"],stdout=PIPE) In [44]: Popen(["wc","-l"],stdin=p.stdout).communicate()[0] 2
用户名称:
In [54]: users=check_output("who") In [55]: set([x.split()[0] for x in users.splitlines()]) Out[55]: set(['monty'])
我在网上找到的最好的东西是psutil。 见psutil documentation
psutil
首先安装psutil:
pip install psutil
之后,一切都很简单,例如从终端运行python控制台:
import psutil psutil.users()
输出:
[user(name='root', terminal='pts/0', host='your-local-host-from-isp.net', started=1358152704.0)]
使用^{} 模块,并运行命令
who
。您可以使用:
who | wc -l
获取当前登录的次数:用户名称:
我在网上找到的最好的东西是
psutil
。 见psutil documentation首先安装psutil:
之后,一切都很简单,例如从终端运行python控制台:
输出:
相关问题 更多 >
编程相关推荐