我需要检查 Linux(Ubuntu)下的用户活动,并在 10 分钟后通过电子邮件提醒用户。
所谓不活动,我指的是用户正在运行的进程的 CPU 使用率。我尝试使用“ps -a”来获取用户进程,但我不知道如何检查具体的 CPU 使用率
答案1
由于您的问题不太具体,我只能猜测您的意思。如果您所说的用户活动是指键盘或鼠标,那么可以通过几种不同的方式实现。在 bash 脚本中,您可以使用命令 xprintidle(在标准存储库中)。然后,如果您有相应的电子邮件设置,您可以使用例如 mail 命令来发送电子邮件。
或者,在检测到超时后,您还可以调用 Python 脚本,并让其使用标准协议和您最喜欢的电子邮件帐户(例如 gmail)发送电子邮件。您可以阅读有关该内容的信息,例如这里为了简单起见,我将该页面的代码示例粘贴在此处:
import smtplib
fromaddr = '[email protected]'
toaddrs = '[email protected]'
msg = 'There was a terrible error that occured and I wanted you to know!'
# Credentials (if needed)
username = 'username'
password = 'password'
# The actual mail send
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
如果您愿意,您也可以将整个内容保留在 python 中。标准方法是使用 ctypes 模块访问 libX。我之前曾尝试实现其中一个配方,并且(除了有时必须替换一些 lib 路径外)效果非常好。我不会在这里粘贴这些代码示例,因为它们很大,而且可以在多个网站上找到,例如这里,如果您想要更多搜索“python x idle time”也许可以添加 ubuntu 或 linux。
如果您对其中一种方法有更具体的问题,请告诉我,并且请在您的问题中详细说明一下。