Ad Widget

Collapse

Мониторинг cmd

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lirikons
    Junior Member
    • Oct 2015
    • 15

    #1

    Мониторинг cmd

    Добрый день.

    Смысл в том, чтобы мониторить конкретную cmd сессию посредством zabbix. Но, пока не очень ясно как, поскольку в списках процессов эта сессия прописывается просто как cmd.exe без уточнения, что за сессия, как окно называется.

    Кто-нибудь может подсказать?
  • Zentarim
    Senior Member
    • Mar 2012
    • 526

    #2
    Originally posted by lirikons
    Добрый день.

    Смысл в том, чтобы мониторить конкретную cmd сессию посредством zabbix. Но, пока не очень ясно как, поскольку в списках процессов эта сессия прописывается просто как cmd.exe без уточнения, что за сессия, как окно называется.

    Кто-нибудь может подсказать?
    а ЧТО в этой сессии вы хотите мониторить?

    Comment

    • lirikons
      Junior Member
      • Oct 2015
      • 15

      #3
      В одной из сессий выполняется java сценарий. Нужно, чтобы она всегда была открыта.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        tasklist /V /FI "Windowtitle eq <Имя окна>"

        Я даже картинку покажу на всякий случай: http://static2.keep4u.ru/2015/11/03/cmd.png

        Comment

        • lirikons
          Junior Member
          • Oct 2015
          • 15

          #5
          Originally posted by yukra
          tasklist /v /fi "windowtitle eq <Имя окна>"

          Я даже картинку покажу на всякий случай: http://static2.keep4u.ru/2015/11/03/cmd.png
          Класс, то что надо. Спасибо.

          Comment

          • lirikons
            Junior Member
            • Oct 2015
            • 15

            #6
            Так тогда:

            @echo off
            set Windowtitle=test
            tasklist /V /FI "Windowtitle eq %Windowtitle%" | find /i "cmd">nul

            if %errorlevel%==0 (
            echo 1
            ) else (
            echo 0
            )
            Last edited by lirikons; 03-11-2015, 17:33.

            Comment

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #7
              yukra, спасибо! Не знал про такую команду, полезная вещь.

              lirikons, тогда уж можно сделать батник ещё элегантнее:
              Code:
              @echo off
              set A=%1
              set A=%A:"=%
              tasklist /FI "Windowtitle eq %A%" | find /С "PID Session Name"
              В качестве параметра передаём имя окна (если несколько слов - то заключаем в кавычки, которые удаляются вторым SET-ом). В выводе команды tasklist ищем кусок заголовочной строки (не зависящей от имени окна), который будет присутствовать в случае, если окно найдено. На выходе имеем количество таких найденных окон (ноль, если не нашли).
              Last edited by Kos; 04-11-2015, 12:40. Reason: оптимизация батника

              Comment

              • lirikons
                Junior Member
                • Oct 2015
                • 15

                #8
                Спасибо.

                Возникла проблема при выполнении данного скрипта (моего). Если его запустить удаленно, то окон не будет найдено. Например если zabbix делает запрос или с помощью PSexec. Наверное потому, что в этом случае отсутствует графическое представление. Пока не знаю, как решить эту проблему. Кто-то сталкивался?

                Comment

                • yukra
                  Senior Member
                  • Apr 2013
                  • 1359

                  #9
                  Originally posted by lirikons
                  Спасибо.

                  Возникла проблема при выполнении данного скрипта (моего). Если его запустить удаленно, то окон не будет найдено. Например если zabbix делает запрос или с помощью psexec. Наверное потому, что в этом случае отсутствует графическое представление. Пока не знаю, как решить эту проблему. Кто-то сталкивался?
                  Я думаю дело в правах на просмотр чужих процессов. Попробуйте запускать от имени администратора.

                  Comment

                  • lirikons
                    Junior Member
                    • Oct 2015
                    • 15

                    #10
                    Originally posted by yukra
                    Я думаю дело в правах на просмотр чужих процессов. Попробуйте запускать от имени администратора.
                    Нет, увы. Ну ладно, на худой конец, скрипт можно запускать локально, и сделать так, чтобы он единичку или ноль в файл писал отдельно.

                    Comment

                    • Kos
                      Senior Member
                      Zabbix Certified SpecialistZabbix Certified Professional
                      • Aug 2015
                      • 3404

                      #11
                      1) в моём скрипте тоже неточность. В том виде как было, он не будет показывать количество окон (хотя 0 или 1 будет выдавать исправно).

                      Чтобы таки показывал количество окон, нужно примерно так:
                      Code:
                      @echo off
                      set A=%1
                      set A=%A:"=%
                      tasklist /NH /FI "Windowtitle eq %A%" | find /V "INFO: No tasks are running which match the specified criteria." | find /C " "
                      2) что подразумевается под удалённым выполнением скрипта?
                      Если запуск команды tasklist с ключиком /S удалённаяСистема, то это не получится:
                      C:\>tasklist /?
                      TASKLIST [/S system [/U username [/P [password]]]]
                      [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

                      Description:
                      This tool displays a list of currently running processes on
                      either a local or remote machine.

                      Parameter List:
                      /S system Specifies the remote system to connect to.

                      [...]

                      NOTE: "WINDOWTITLE" and "STATUS" filters are not supported when querying
                      a remote machine
                      .

                      Comment

                      • lirikons
                        Junior Member
                        • Oct 2015
                        • 15

                        #12
                        С помощью ключика /S не пробовал. Но есть набор доп утилит:



                        в частности PSexec можно подключится к cmd удаленного компа - с ней не выходит.
                        Last edited by lirikons; 07-11-2015, 09:09.

                        Comment

                        • lirikons
                          Junior Member
                          • Oct 2015
                          • 15

                          #13
                          Но не выходит и с zabbix агентом, хотя он локально выполняется.

                          Comment

                          • lirikons
                            Junior Member
                            • Oct 2015
                            • 15

                            #14
                            Пока так сделал, zabbix берет инфу из файлика:

                            @echo off
                            set Windowtitle=test

                            tasklist /V /FI "Windowtitle eq %Windowtitle%" | find /i "cmd">nul

                            echo @echo off > test.bat

                            if %errorlevel%==0 (
                            echo echo 1 >> dispPCNtoZabbix.bat

                            ) else (
                            echo echo 0 >> test.bat
                            )

                            Comment

                            • lirikons
                              Junior Member
                              • Oct 2015
                              • 15

                              #15
                              Еще один вариант, если нужно найти не дословно имя окна, а какую-то фразу в нем:

                              tasklist /fi "imagename eq firefox.exe" /v | find /i "Kingdoms of Camelot on Facebook - Mozilla Firefox"

                              http://stackoverflow.com/questions/9...unction-filter

                              Comment

                              Working...