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

Если мышь была не активной в течение N минут, сделаем вывод, что пользователь в настоящее время не работает с ПК. Всю статистику будем отправлять в Телеграмм.
Обращу Ваше внимание, операционная система семейства Linux, писать весь код будем в bash.
В консоли напишем:
sudo cat /dev/input/mouse0
и подвигаем мышкой — должны на экране терминала появиться символы.
Создадим папку Monitoring
sudo mkdir /var/monitoring
создадим файл input.sh
sudo nano /var/monitoring/input.sh
вставим текст:

#/bin/bash
#####Время от которого начинается отсчет простоя (в секундах)#######
inactive=10

###TELEGRAM####
token=
chat_id=
text="Пользователь начал работу."

########НЕ ТРОГАТЬ!!!#######
timeinactive=0
t=0
test=
echo $(date +%s) > /var/monitoring/start.txt
###Сразу после запуска ПК, оповещение в телеграм не сработает,
###так как еще не установлено соединение с Интернет
sleep 60
url="https://api.telegram.org/bot$token/sendMessage?chat_id=$chat_id&text=$text"
curl -X POST "$url" 2 > /dev/null
while :; do
####Параметр -n задает чуствительность движение мыши
####Параметр -st задает время чтение файла (1 секунда)
####Если убрать - цыкл while не начнет следующую итерацию
read -n 5 -st 1 i</dev/input/mouse0
if [ "$i" = "$test" ]; then
t=$[$t+1]
if (( "$t" > "$inactive" )); then
timeinactive=$[$timeinactive+1]
echo "$timeinactive">/var/monitoring/timeinactive.txt
fi
else
t=0
fi
done &

Создадим файл input_stop.sh:
sudo nano /var/monitoring/input_stop.sh
вставим текст:



#!/bin/bash
read timeinactive < /var/monitoring/timeinactive.txt
read start < /var/monitoring/start.txt
end=$(date +%s)
timeall=$(($end-$start))

sall=$[$timeall%60]
mall=$[$timeall/60%60]
hall=$[$timeall/3600]
if (( "$sall" < 10 )); then sall=0$sall
fi
if (( "$mall" < 10 )); then mall=0$mall
fi
if (( "$hall" < 10 )); then hall=0$hall
fi

sinactive=$[$timeinactive%60]
minactive=$[$timeinactive/60%60]
hinactive=$[$timeinactive/3600]
if (( "$sinactive" < 10 )); then sinactive=0$sinactive
fi
if (( "$minactive" < 10 )); then minactive=0$minactive
fi
if (( "$hinactive" < 10 )); then hinactive=0$hinactive
fi

procent=$[$[100*$timeinactive]/$timeall]
procent=$[100-$procent]

###TELEGRAM####
token=
chat_id=
text="Пользователь закончил работу!Общее время работы: $hall:$mall:$sall. Время простоя: $hinactive:$minactive:$sinactive. Эффективность работы: $procent%."

url="https://api.telegram.org/bot$token/sendMessage?chat_id=$chat_id&text=$text"
curl -X POST "$url" 2 > /dev/null
echo "0" > /var/monitoring/timeinactive.txt

Создадим текстовые файлы для хранения информации:
sudo nano /var/monitoring/timeinactive.txt
sudo nano /var/monitoring/start.txt
Задаем права на исполнение скриптов:
sudo chmod + x /var/monitoring/input.sh
sudo chmod + x /var/monitoring/input_stop.sh
Задаем права на файлы и папки:
sudo find / var / monitoring / -type d -exec chmod 777 {};
sudo find / var / monitoring / -type f -exec chmod 777 {};
Запускаем на выполнение файлы, и проверяем их на работоспособность:
sudo /var/monitoring/input.sh
ждем 1 мин, после чего должно прийти сообщение в Телеграмм.
sudo /var/monitoring/input_stop.sh
Проверяем сообщение в телеграмме.
Для автоматического запуска скриптов, используем systemd.service.
Сервис в операционных системах семейства Unix — программа выполняется в фоновом режиме и не имеет окон или других способов связи с пользователем.
Создадим файл monitoring.service
sudo nano /etc/systemd/system/monitoring.service
вставляем текст:



[Unit]
Description=Monitoring config
After=systemd-user-sessions.service
[Service]
ExecStart=/bin/bash /var/monitoring/input.sh
ExecStop=/bin/bash /var/monitoring/input_stop.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target reboot.target poweroff.target

Даем права на файл:
sudo chmod + x /etc/systemd/system/monitoring.service
sudo chmod 644 /etc/systemd/system/monitoring.service
Перезагружаем systemd для поиска новых или измененных юнитов:
sudo systemctl daemon-reload
Включаем юнит в автозапуск при загрузке системы:
sudo systemctl enable monitoring.service
Чтобы проверить без перезагрузки, можно запустить и остановить юнит:
sudo service monitoring start
sudo service monitoring stop
Перезапускаем систему:
sudo reboot
Возможно Вам будет интересна еще одна моя статья: Создание Wi-FI точки доступа Raspberry PI

Похожие статьи:

«Умная» пересылка входящих СМС сообщений в OpenVox
Берем за пример статью Пересылка СМС с OpenVox в Telegram, здесь мы получаем сообщения с Opnevox, отсекаем только те сообщения, которые приходят на определённый порт, и отправляем сообщение в Telegram. В этой статье опишу как "умно" сортировать входящие СМС сообщения, и направлять их на определённые сервисы ...
Установка Ubuntu Server 18.04.1 LTS на программный RAID1 с HOT SPARE
В этой статье я детально расскажу, как установить Ubuntu Server 18.04.1 LTS на программный RAID1, с использованием резервного диска "HOT SPARE". Постановка задачи: Есть сервер Supermicro: Материнская плата: Supermicro X11SSL-F Процессор: Intel(R) Xeon(R) CPU E3-1220 v6 @ 3.00GHz, 4 ядра. Физическая память: 16 Гб, DDR4 Дисковое пространство: ...
Отправка сообщений в Telegram
Здесь описаны возможные способы отправки сообщений в Telegram Windows CMD Для удобства отправки с командной строки, написал консольную программу на языке Pascal. Среда разработки PascalABC.NET uses System.IO, System.Net; var i:integer; html : string; chat_id: string; {:='111111111';} token: string; {:= '0000000:AAAAAAAAAAAAAAAAAAAAAA';} parse_mode: string; {:= 'html';} message: string:=''; {:='Сообщение';} url : string; begin token := ParamStr(1); chat_id := ParamStr(2); parse_mode := ...
Установка и настройка сервиса сокращений ссылок Polr
Polr - это красивый, современный, легкий и минималистический сервис для сокращения URL ссылок с открытым исходным кодом. Он позволяет создавать собственные сокращенные URL ссылки, маркировать URL и получать контроль над вашими данными. Вести статистику переходов. Polr особенно прост в использовании и предоставляет современный, удобный интерфейс. ...
Пересылка СМС с OpenVox в Telegram
Как пример опишу реализацию задачи "Очередь на кассе". Если очередь на кассе - отправь сообщение на номер 050XXXXXXX с текстом "2302". Когда приходит сообщение переправлять в Telegram канал. Сим-карта с номером 050XXXXXXX подключена в Openvox, который в свою очередь настроен на получение СМС. Решение Для пересылки полученных сообщений ...
Мониторинг свободной памяти
При активном использовании ПК, иногда возникает необходимость следить за количеством свободной памяти на логических дисках. В этой статье, я расскажу как реализовать мониторинг свободной памяти логического диска, с оповещением в телеграмм. Итак, будем использовать скрипт VBS. Создадим пустой текстовый файл, и изменим его имя и расширение ...
Установка Bitwarden Server для организации
Проблема Нужно установить Bitwarden Server для работой с организацией. Также не забываем о Docker. Решение Для запуска и установки в личных целях, достаточно воспользоваться официальной инструкцией по ссылке https://help.bitwarden.com/article/install-on-premise/. Не забываем установить Docker и Docker-compose: curl -sSL https://get.docker.com/ | sh sudo usermod -aG docker ${USER} sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o ...
Мониторинг состояния RAID массива контроллеров P420
Описание Контроллер HPE Smart Array P420 - это низкопрофильный RAID-контроллер с интерфейсом 6 Гбит/с, PCIe 3.0, Serial Attached SCSI (SAS), корпоративного класса, который обеспечивает производительность хранилища и защиту данных для стоечных серверов HPE ProLiant Gen8. Он оснащен восемью внутренними портами SAS и обеспечивает повышенное время безотказной ...