Скрипт оболочки, который проверяет активность пользователя и отправляет электронное письмо пользователю в случае неактивности

Мне нужно проверить активность пользователя в Linux (Ubuntu), и через 10 минут мне нужно предупредить пользователя по электронной почте.

Под неактивностью я имею в виду использование процессора процессами, которые запускает пользователь. Я пытался использовать "ps -a", чтобы пользователь продолжал, но я не знаю, как проверить конкретное использование процессора

1
задан 23 May 2012 в 11:52

1 ответ

Поскольку твой вопрос не очень конкретный, я могу только догадываться, что ты имеешь в виду. Если под пользовательской активностью вы подразумеваете клавиатуру или мышь, то это может быть реализовано несколькими различными способами. В скрипте bash вы можете использовать команду xprintidle (в стандартных репозиториях). Затем, если у вас есть соответствующий адрес электронной почты , настроенный , вы можете использовать, например, команда mail для отправки электронного письма.

В качестве альтернативы, после определения времени ожидания вы также можете позвонить, например, скрипт Python и заставить его отправлять и отправлять по электронной почте с использованием стандартных протоколов и вашей любимой учетной записи электронной почты, например, GMail. Вы можете прочитать об этом, например. здесь Ради большей полноты я вставил пример кода с этой страницы здесь:

import smtplib

fromaddr = 'fromuser@gmail.com'
toaddrs  = 'touser@gmail.com'
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.

Если у вас есть более конкретные вопросы по одному из этих подходов, дайте мне знать, и, пожалуйста, уточните немного больше в вашем вопросе.

0
ответ дан 23 May 2012 в 11:52

Другие вопросы по тегам:

Похожие вопросы: