Сделать стартовойДобавить в закладки  
Главная страничка Главная страничка
В номере:

Выходит с 17 июля 2008 г. цена договорная

Опрос

увольнение
задержка зп
снижение зп
повышение зп
рост цен
а мне по барабану, я олигарх
какой кризис?


Календарь
«    Август 2011    »
ПнВтСрЧтПтСбВс
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 

Архив новостей
Апрель 2012 (4)
Март 2012 (1)
Январь 2012 (2)
Декабрь 2011 (2)
Ноябрь 2011 (1)
Октябрь 2011 (4)

Информация
 
ping2log - запись в лог доступности сервера
OS, мобильные OS » Windows » WSH скрипты
автор: dimon, опубликовано: 24 августа 2011

Скрипт для проверки доступности соединения методом ping-а, указанного в настройках сервера, и записи результатов проверки в лог-файл.

'----------------------------------------------------------------------
'
' Copyright (c)  All rights reserved.

'
' AUTHOR: tudimon.com
' DATE: 24.08.2011
' NAME: ping2log.vbs
'
' COMMENT:
'
' Проверка доступности соединения методом ping-а и запись результатов
' проверки в лог-файл
'
' Завершить выполнение скрипта можно прибив в Диспетчере задач процесс
' wscript.exe
'
'----------------------------------------------------------------------

compip = "77.88.21.13"      ' ip адрес сервера, который будем пинговать
LogFilePath = "c:\log.log"    ' лог-файл
timeout = "30"                 ' таймаут проверки в секундах

On Error Resume Next


do

    Set objShell = CreateObject("WScript.Shell")

    ' Пингом проверим что сервер доступен
        Set objScriptExec = objShell.Exec("%comspec% /c ping.exe -n 2 " & compip)
        strPingResults = LCase(objScriptExec.StdOut.ReadAll)
    
        If InStr(strPingResults, "ttl=") Then
            ' доступен

            ' пишем лог
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " доступен"
            LogFile.Close

            'MsgBox compip & " пингуется :) "
        Else
            ' не доступен
        
            ' пишем лог
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " не доступен"
            LogFile.Close
        
            'MsgBox compip & " не пингуется. Попробуйте позвонить позднее :) "
        End If
    
' заснем на указанное кол-во секунд
wscript.sleep timeout*1000

loop


Завершить выполнение скрипта можно прибив в Диспетчере задач процесс wscript.exe

ping2log.rar [1.91 Kb] (cкачиваний: 49)





*** v2 ***


Моргающее черное окошко cmd очень неудобно. Поэтому избавимся от него, воспользовавшись Win32_PingStatus class.

Измененный скрипт будет выглядеть так:

'----------------------------------------------------------------------
'
' Copyright (c)  All rights reserved.
'
'
' AUTHOR: tudimon.com
' DATE: 04.10.2011
' NAME: ping2log_v2.vbs
'
' COMMENT:
'
' Проверка доступности соединения методом ping-а и запись результатов
' проверки в лог-файл
'
' Завершить выполнение скрипта можно прибив в Диспетчере задач процесс
' wscript.exe
'
'----------------------------------------------------------------------

compip = "77.88.21.13"      ' ip адрес сервера, который будем пинговать
LogFilePath = "c:\log.log"    ' лог-файл
timeout = "30"                 ' таймаут проверки в секундах

On Error Resume Next

do
    
        If fnPing(compip) = 1 Then
            ' доступен

            ' пишем лог
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " доступен"
            LogFile.Close

            'MsgBox compip & " пингуется :) "
        Else
            ' не доступен
        
            ' пишем лог
            Set FSO = CreateObject("Scripting.FileSystemObject")
            Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True)
            LogFile.WriteLine Now & " " & compip & " не доступен"
            LogFile.Close
        
            'MsgBox compip & " не пингуется. Попробуйте позвонить позднее :) "
        End If
    
' заснем на указанное кол-во секунд
wscript.sleep timeout*1000

loop




'-------------------------------------------------------------------------------
Function fnPing( strHost )
' fnPing = 0  - не пингуется
' fnPing = 1  - пингуется
Dim objPing, objRetStatus
Set objPing = GetObject( "winmgmts:{impersonationLevel=impersonate}" ).ExecQuery( "select * from Win32_PingStatus where address = '" & strHost & "'" )
        'http://msdn.microsoft.com/en-us/library/aa394350(VS.85).aspx

For Each objRetStatus in objPing
   If IsNull( objRetStatus.StatusCode ) or objRetStatus.StatusCode <> 0 Then
        fnPing = 0
   Else
        fnPing = 1
        'ResponseTime - Time elapsed to handle the request.
        'fnPing = objRetStatus.ResponseTime
   End If
Next
End Function
'-------------------------------------------------------------------------------


Источник - admnotes.blogspot.com

Завершение скрипта так же как и первого - через Диспетчер задач.

ping2log_v2.rar [2.11 Kb] (cкачиваний: 21)





*** v3 ***


Эта версия отличается от предыдущей тем, что записывает в лог время отклика сервера.

ping2log_v3.rar [2.18 Kb] (cкачиваний: 34)





*** v4 ***


+ ежедневные лог-файлы в формате yyyy-mm-dd.log

ping2log_v4.rar [2.34 Kb] (cкачиваний: 61)

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

Другие новости по теме:

  • Список подкатологов в текстовый файл
  • Список файлов в каталоге в текстовый файл
  • Скрипт копирования файлов с установленным архивным битом в резервный катало ...
  • Скрипт для бэкапа папки в rar-архив и удаления архивов старше N дней
  • Поиск группы в ACL вложенных папок первого уровня


  • #1 написал: dimon (7 октября 2011 12:17)
    mihai_md2003, грохнул случайно ваши каменты в борьбе со спамом.
    вы правы насчет записи отклика - подумаю над эти
    #2 написал: mihai_md2003 (8 октября 2011 00:05)
    Спасибо буду ждать.
    #3 написал: dimon (8 октября 2011 14:49)
    v3 - без окна cmd, в лог пишется время отклика
    #4 написал: mihai_md2003 (9 октября 2011 03:37)
    Дмитрий есть какая то ошибка в скрипте, при недоступности ресурса идет запись "доступен" и пинг пишется равным "0". Нельзя ли это исправить, и скажем, если недоступен то пинг указывать скажем 9999 или что еще лучше вообще не указывать ,(частенько когда были запоры в сети был пинг под 3000). Если мониторить сайты в принципе и так понятно, но если речь идет о мониторинге внутри локальной сети, то в ней тоже задержка часто бывает равной 0 и непонятно прошел пинг или нет. Заранее спасибо
    #5 написал: dimon (10 октября 2011 10:32)
    mihai_md2003, сорри. действительно - накосячил с переменными. теперь правильно пишет.
    #6 написал: mihai_md2003 (11 октября 2011 17:42)
    Спасибо что реагируете на мои замечания. В последней версии при запуске снова появляется окно с результатами пинга при кажом круге, но не коммандера а виндовса. У меня win xp 32 бита. Проверьте пожалуйста у себя работоспособность последний версии. Спасибо
    #7 написал: dimon (11 октября 2011 18:13)
    mihai_md2003, извини - опять накосячил - забыл убрать это диагностическое сообщение.
    надеюсь теперь все нормально будет
    спасибо тебе за тестирование feel
    #8 написал: Orbit (5 декабря 2011 20:32)
    Спасибо за скрипт. Очень полезный.
    Хотелось бы чтоб логи раскладывал по дням и работал на w7 64 bit.
    #9 написал: dimon (6 декабря 2011 09:50)
    Orbit, v4 - логи по дням
    на w7x64 работают все версии скрипта - проверял на корпоративной версии винды
    #10 написал: Orbit (6 декабря 2011 10:53)
    у меня не работает на w7x64max.
    в логах
    06.12.2011 11:43:01 77.88.21.13 доступен ( мс)
    нет мс, а так-же при вык инета пишет что апи доступен.
    И ещё нельзя ли дополнить скрипт данными которые при запуске скрипта писали в доп файл пид процесса который создаёт скрипт. Удобно было бы останавливать скрипт. Пока приходится его глушить так taskkill /IM WScript.exe /F, но если к примеру в работе несколько скриптов.
    #11 написал: dimon (6 декабря 2011 11:31)
    Orbit, странно. где не пробовал везде работало.
    попробуй закомментировать строку On Error Resume Next может ошибку выдаст
    и попробуй попинговать 127.0.0.1, плз
    pid скорее всего не получится прописать, но посмотрю попозже
    #12 написал: Orbit (6 декабря 2011 11:43)
    при комментировании данной строки ошибка.
    стр 72
    символ 1
    недостаточно памяти Get Object
    код 800A0007

    и пинг
    06.12.2011 12:37:09 127.0.0.1 доступен ( мс)
    06.12.2011 12:37:39 127.0.0.1 доступен ( мс)

    #13 написал: dimon (6 декабря 2011 12:22)
    хм, странно
    а памяти скока? (тут конечно вряд ли в ней дело, но интересно)
    NET Framework-и?

    на w2k8 R2 тоже работает
    #14 написал: Orbit (6 декабря 2011 12:37)
    4g ноут ASUS K53E
    NET Framework 4 client profile
    #15 написал: Orbit (7 декабря 2011 15:30)
    попробовал на ещё одном буке. та-же байда правда здесь w7x32.
    вроде как 7ки и не видать?!
    #16 написал: dimon (7 декабря 2011 15:45)
    буду счас ноут делать сотруднику - попробую на чистой винде запустить
    может дело в том что я на всю технику что-нить ставлю (фрэмворки например 2, 3, ява), а ты это не ставишь

    на счет того что там нет в описании семерки - ты прав, но это не значит что не будет работать. тем более у меня и на семерке и на 2008 сервере работает
    будем искать в чем отличие моей семерки от твоей
    #17 написал: dimon (9 декабря 2011 09:58)
    Orbit, UAC включен? тогда запуск от имени администратор
    проверил на новом ноуте с Windows7HP x64
    #18 написал: Orbit (9 декабря 2011 12:59)
    UAC выключен. Нашел проблему! Сomodo не давал нормально работать скрипту request
    и еще маленький вопрос по .vbs и автоматизации заполнения разных окон но не имеющего отношения к данной теме разрешите?
    #19 написал: dimon (9 декабря 2011 13:16)
    Orbit, конечно :)
    #20 написал: Orbit (9 декабря 2011 13:51)
    на примере этого скрипта
    set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "radmin.exe /connect:192.168.77.101:4899"
    WScript.Sleep 200
    WshShell.AppActivate "Система безопасности Radmin: nas"
    WScript.Sleep 500
    WshShell.SendKeys "admin"
    WshShell.SendKeys "{TAB}"
    WshShell.SendKeys "12345"
    WshShell.SendKeys "{ENTER}"
    какую команду надо использовать в скрипте перед этой командой WshShell.SendKeys "admin" чтоб запись шла именно в это поле ввода? так сказать идентификатор нужного поля.
    #21 написал: dimon (9 декабря 2011 14:03)
    хм. разве поля в приложениях имеют идентификаторы?
    я считал что не имеют. пороюсь вечерком в мануалах
    #22 написал: dimon (12 декабря 2011 09:38)
    попытал тут знакомого программиста. говорит нету идентификаторов полей.
    и он удивился зачем нужно идентифицировать - при активации формы фокус всегда попадает на одно и тоже поле - т.е. нужно просто рассчитать нужное кол-во таб-ов чтобы попасть на нужное поле
    #23 написал: Orbit (12 декабря 2011 21:07)
    бывает так что и не попадает на нужное поле, а так же иногда путает окна. не срабатывает WshShell.AppActivate.
    есть такая прога AutoIt у неё скрипты типа .vbs. Там же утилита AutoIt Window Info. Так вот она различает поля для ввода по классам. Думал что и здесь есть что то подобное.
    Кстати последний скрипт не создаёт новый файл при переходе суток.
    #24 написал: dimon (13 декабря 2011 13:28)
    Orbit, может и есть. только мы пока об этом не знаем.
    переход суток исправил


     
    Информация
     
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


    Поиск по сайту:


    Аккаунт
    Логин
    Пароль
     
    Облако тегов

    Требуется для просмотра Flash Player 9 или выше.

    Показать все теги
    Реклама
    раскрутка сайта бесплатно






    Главная страница | Регистрация | Добавить новость | Новое на сайте | Статистика | Поддержка | Правила ресурса Copyright © 2005-2011 by dimon - all right reserved!
    Тираж:     Rambler's Top100     Анализ сайта   экземпляров.   Дизайн, верстка by dimon