Ad Widget

Collapse

Мониторинг файлайлов в каталоге Windows

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • csf
    Senior Member
    • Nov 2007
    • 154

    #1

    Мониторинг файлайлов в каталоге Windows

    Добрый день !

    Имеется каталог на Windows-машине. Zabbix-Agent там работает. Небходимо мониторить, чтобы этот определенный каталог был или пустой или "возраст" лежащих там файлов был не старше 5 минут.
    Может кто-нибудь подсказать, как это можно реализовать ?
    Я нашел здесь http://www.zabbix.com/forum/showthre...hlight=windows ссылку на статью, которая должна была бы содержать в точности решение для моего случая, но ссылка, к сожалению, мертва.

    Заранее благодарен.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Это очень просто. Пишем скрипт который выполняет проверку
    Пример на perl (можно поставить ActivePerl на Windows, или программой perl2exe конвертнуть check.pl в check.exe)
    check.pl
    Code:
    opendir (DIR,"c:\\Test\\");
    my $time=time();
    my $error=0;
    while($test=readdir(DIR))
    {
    if (!-d $test) {
      $mtime=(stat($test))[9];
      if ($time-$mtime >300) {$error=1};
            }
    }
    closedir(DIR);
    print "$error\n";
    А дальше настраиваем zabbix_agent
    zabbix_agentd.conf
    UserParameter=check,c:\\path\\check.pl

    Коды возврата:
    0 - каталог пустой или "возраст" лежащих там файлов был не старше 5 минут.
    1 - "возраст" лежащих там файлов старше 5 минут.
    Last edited by dima_dm; 21-01-2011, 21:04.

    Comment

    • csf
      Senior Member
      • Nov 2007
      • 154

      #3
      Спасибо большое за ответ !

      А просто средствами Zabbix-Agent это решить нельзя ?

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Originally posted by csf
        А просто средствами Zabbix-Agent это решить нельзя ?
        Нельзя. Есть только vfs.file.time[файл,<режим>], но нужно знать имя файла, т.е. в общем виде не работает.

        Comment

        • csf
          Senior Member
          • Nov 2007
          • 154

          #5
          Ответ всегда "0". Попробовал под Linux - все работает корректно.

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            Originally posted by csf
            Ответ всегда "0". Попробовал под linux - все работает корректно.
            Проверяйте права на директорию для пользователя, под которым запускается скрипт.
            Можете после $mtime=(stat($test))[9]; вставить строку для тестирования
            print "$test $mtime\n";
            В функции stat нужно указывать полный путь до файла или chdir($path).
            Скрипт
            Code:
            my $path="c:\\Temp\\";
            opendir (DIR,$path);
            my $time=time();
            my $error=0;
            while($test=readdir(DIR))
            {
            if (!(-d $test)) {
              $mtime=(stat("$path/$test"))[9];
              print "Test only: $test $mtime\n";
              if ($time-$mtime >300) {$error=1};
                    }
            }
            closedir(DIR);
            print "$error\n";
            Last edited by dima_dm; 24-01-2011, 11:39.

            Comment

            • csf
              Senior Member
              • Nov 2007
              • 154

              #7
              Спасибо, большое!

              Заработало. Последняя проблема. Конвертор perl2exe, вроде Freeware, но после конвертации бинарник, прежде чем выдать требуемый "0" или "1" сообщает, что этот бинарник выполнен с помощью конвертора, использованном в ознакомительном режиме и поэтому результат выдается с 2-х секундной задержкой. Этот "приятный" текст делает невозможным дальнейшую настройку триггера. Не посоветуете конвертор без данного увечья, т.е. действительно Freeware. Просто Perl на мониторенный Windows поставить не могу - продукционная машина, замучаюсь пыль глотать согласовывать...

              Comment

              • dima_dm
                Senior Member
                • Dec 2009
                • 2697

                #8
                В зарегистрированной версии perl2exe никакого сообщения нет.

                Comment

                Working...