|
|||||||
Как сделать периодические скриншоты экрана пользователя с помощью TightVNC
Время создания: 15.08.2017 09:42
Автор: Xintrea
Текстовые метки: Linux, Windows, TightVNC, VNC, скриншот, периодический
Раздел: Компьютер - Linux - Видео в Linux - Захват видео с экрана
Запись: xintrea/mytetra_syncro/master/base/1502779328nya7mpo189/text.html на raw.github.com
|
|||||||
|
|||||||
Задача Есть сеть предприятия, в которой находятся рабочие станции с операционными системами Windows и Linux. Для удобства администрирования на каждую станцию установлен демон TightVNC-сервера. На предприятии появился нехороший человек, который на рабочем месте занимается совсем не работой. Надо собрать пачку скриншотов для дальнейшего анализа деятельности сотрудника. Решение Собирать пачку скриншотов, сделанных с опроеделенной периодичностью, можно с помощью Linux. На Linux должно быть запущено какое-нибудь десктоп-окружение - LXDE, GNOME, KDE - без разницы какое. Для решения задачи потребуется скромный набор программ:
Сам Linux может быть запущен как на отдельном компьютере, так и в локальной виртуалке или на виртуальной ферме. Можно запускать на терминальном сервере (если таковой имеется), например через X2go. Или вообще в отдельном сеансе X11, при наличии определенной сноровки. Скрипт для снятия периодических скриншотов выглядит так: #!/bin/bash # Имя рабочей станции, с которой надо снять скриншоты hostName=workstation123 # Задержка между снимками в секундах delay=180 again="true" while [ "$again" = "true" ] do # Удаление дубликатов fdupes -f . | xargs rm -f sleep 3 # Подключение к рабочей стации echo пароль_для_VNC_подключения | vncviewer -viewonly -bgr233 -autopass $hostName & sleep 5 # Задержка чтобы успело появиться целевое окно # Выясняется идентификатор окна с TightVNC windowId=`xwininfo -tree -root | grep -v "has no name" | grep -v child | grep TightVNC | sed 's/^[ \t]*//' | cut -d' ' -f1` echo "Find window with ID: $windowId" # Конструирование имени файла suffix=`date +"%Y-%m-%d-%H-%M-%S"` filename="scr-"$hostName"-"$suffix".jpg" echo $filename # Создание скриншота # import -window root $filename import -window $windowId $filename killall vncviewer sleep $delay done echo "Bye-Bye" В скрипте есть несколько принудительных задержек (sleep) без которых создание снимка экрана не будет нормально срабатывать. Соединение VncViewer для каждого очередного снимка устанавливается заново, а после создания снимка закрывается. Это необходимо для того, чтобы на Windows-машинах постоянно не мигал курсор мышки в период, когда к машине осуществлено подключение по VNC (есть такая проблема). Говорят, что в TightVNC это побороть невозможно, а вот в UltraVNC такой проблемы нет (зато есть другие причуды). Данный скрипт будет периодически открывать окно VNC, делать с него скриншот, и сохранять его в текущий каталог. Запускаем, оставляем на пару суток, после чего можно разглядывать пачку веселых картинок. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|