Оптимизация скриптов vncscreenshot - PullRequest
0 голосов
/ 30 апреля 2018

Добрый день, Я использую vncsnapshot http://vncsnapshot.sourceforge.net/ в среде Debian 7 для захвата скриншотов рабочих станций для мониторинга активности рабочего стола персонала. Это делает снимок экрана через nmap и сохраняет его в желаемом месте, доступном через внутреннюю веб-страницу.

У меня есть такие сценарии. X.x.x.x - это ip-диапазон сети для захвата всех открытых рабочих станций.

    #!/bin/bash
 nmap -v -p5900 --script=vnc-screenshot-it --script-args vnc-screenshot.quality=30 x.x.x.x

И настройка в crontab для запуска каждые 5 минут.

На сервере слишком много запущенных процессов. Это пример команды ps

root     32696  0.0  0.0   4368     0 ?        S    Feb23   0:00 /bin/bash /var/www/vncsnapshot/.scripts/.account.sh
root     32708  0.0  0.0  14580     4 ?        S    Feb23   0:00 nmap -v -p5900,5901,5902 --script=vnc-screenshot-mb
root     32717  0.0  0.0   1952    60 ?        S    Apr10   0:00 sh -c vncsnapshot -cursor -quality 30 x.x.x.x 
root     32719  0.0  0.1  11480  4892 ?        S    Apr10   0:00 vncsnapshot -cursor -quality 30 30 x.x.x.x /var/w
root     32720  0.0  0.0   1952    60 ?        S    Apr25   0:00 sh -c vncsnapshot -cursor -quality 30 30 x.x.x.x 
root     32722  0.0  0.0   1952     4 ?        Ss   Feb09   0:00 /bin/sh -c /var/www/vncsnapshot/.scripts/.account.sh
root     32723  0.0  0.0   3796   140 ?        S    Apr25   0:00 vncsnapshot -cursor -quality 30 30 x.x.x.x /var/w
root     32730  0.0  0.0   1952     4 ?        Ss   Feb08   0:00 /bin/sh -c /var/www/vncsnapshot/.scripts/.account
root     32734  0.0  0.0   4364     0 ?        S    Feb08   0:00 /bin/bash /var/www/vncsnapshot/.scripts/.account.
root     32741  0.0  0.0  13700     4 ?        S    Feb08   0:00 nmap -v -p5900 --script=vnc-screenshot-account --
root     32755  0.0  0.0   1952     4 ?        Ss   Feb08   0:00 /bin/sh -c /var/www/vncsnapshot/.scripts/.account.sh
root     32757  0.0  0.0   1952     4 ?        S    Feb07   0:00 sh -c vncsnapshot -cursor -quality 30 30 x.x.x.x 
root     32760  0.0  0.0   3796     0 ?        S    Feb07   0:00 vncsnapshot -cursor -quality 30 30 x.x.x.x /var/w
root     32762  0.0  0.0   4368     0 ?        S    Feb09   0:00 /bin/bash /var/www/vncsnapshot/.scripts/.account.sh
root     32764  0.0  0.0   4368     0 ?        S    Feb08   0:00 /bin/bash /var/www/vncsnapshot/.scripts/.account.sh

Как я могу оптимизировать эту настройку, чтобы закрыть ненужные процессы, которые все еще работают.

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018

Я разделил процессы на две части: nmap, который регулярно сканирует сеть, и vncsnapshot, который захватывает скриншот списка ранее отсканированных хостов. На мой взгляд, таким образом все становится чище.

я не проверял этот код

#!/bin/bash

## capture the list of host with vnc port open

list=/dev/shm/list
port=5900
network=192.168.1.*

nmap -n -p${port} --open ${network} -oG - | grep 'open\/tcp' | awk '{print $2}' > ${list}

другой скрипт, проверьте, жив ли процесс с файлом блокировки, и в случае запуска команды grab

#!/bin/bash

list=/dev/shm/list
run=/run/vncscreenshot/

mkdir -p ${run} &>/dev/null
cat ${list} |\
while read host 
  do
  lock="${run}/${host}.lock"
  test -e ${lock} && ps -p $(<${lock}) &>/dev/null && continue
  vnc-screenshot-it vnc-screenshot.quality=30 ${host} &
  echo $! > ${lock}
  done
...