![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Логгирование пинга с временной меткой |
|
Любой язык - [решено] Логгирование пинга с временной меткой
|
Ветеран Сообщения: 1639 |
Друзья, подкиньте, пожалуйста, скриптик, который записывает время в формате hh:mm:ss (с интервалом в 10 сек) и указывает фразу (желательно такую же, как и в утилите ping), когда заданный хост НЕдоступен.
Т.е. необходимо определять время, когда хост именно не отвечает. Успешный же ответ игнорировать и никуда не записывать. Спасибо! UPD: нашел вот такой скрипт option explicit ' conHost -- адрес хоста для слежения ' conCheckInterval -- временной интервал const conHost = "ya.ru", conCheckInterval = 10000 ' создаём объект: dim soWshShell : set soWshShell = CreateObject("WScript.Shell") WScript.Quit Main() function WriteLog(strText) WScript.Stdout.WriteLine FormatDateTime(Time(), vbLongTime) & " " & strText end function function GetHostStatus(strHost) dim oPing : set oPing = soWshShell.Exec("ping -n 1 " & strHost) dim strOut : strOut = "" do WScript.Sleep 100 if not oPing.Stdout.AtEndOfStream then strOut = strOut & oPing.Stdout.ReadAll end if loop until oPing.Status = 1 dim oRegExp : set oRegExp = new RegExp oRegExp.IgnoreCase = true oRegExp.Pattern = "[^ ]+:.+TTL=[^\r\n]+" dim oMatches : set oMatches = oRegExp.Execute(strOut) if oMatches.Count > 0 then GetHostStatus = oMatches(0).Value else GetHostStatus = "ya.ru недоступен!" end if end function function Main() do WriteLog(GetHostStatus(conHost)) WScript.Sleep(conCheckInterval) loop end function option explicit ' conHost -- адрес хоста для слежения ' conCheckInterval -- временной интервал const conHost = "ya.ru", conCheckInterval = 10000 ' создаём объект: dim FSO: set FSO=CreateObject("Scripting.FileSystemObject") dim file: set file =FSO.CreateTextFile("bad_ping.txt") dim soWshShell : set soWshShell = CreateObject("WScript.Shell") WScript.Quit Main() function WriteLog(strText) WScript.Stdout.WriteLine FormatDateTime(Time(), vbLongTime) & " " & strText end function function GetHostStatus(strHost) dim oPing : set oPing = soWshShell.Exec("ping -n 1 " & strHost) dim strOut : strOut = "" do WScript.Sleep 100 if not oPing.Stdout.AtEndOfStream then strOut = strOut & oPing.Stdout.ReadAll end if loop until oPing.Status = 1 dim oRegExp : set oRegExp = new RegExp oRegExp.IgnoreCase = true oRegExp.Pattern = "[^ ]+:.+TTL=[^\r\n]+" dim oMatches : set oMatches = oRegExp.Execute(strOut) if oMatches.Count > 0 then GetHostStatus = oMatches(0).Value else file.WriteLine(FormatDateTime(Time(), vbLongTime) & " " & "ya.ru недоступен!") GetHostStatus = "Inaccessible!.." end if end function function Main() do WriteLog(GetHostStatus(conHost)) WScript.Sleep(conCheckInterval) loop end function Такое возможно реализовать? |
|
Отправлено: 11:59, 25-10-2013 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Добрый день.
Только сегодня увидел этот топик. Предлагаю, возможно, более простое решение: @ECHO OFF @echo. rem Пинг первого устройства (192.168.1.1) date /T >D:\Diagnostic\%date%.txt time /T >>D:\Diagnostic\%date%.txt echo Устройство № 1 "IP-adress 192.168.1.1" >>D:\Diagnostic\%date%.txt C:\windows\system32\ping 192.168.1.1 -n 3 if not errorlevel 1 echo +OK+ >>D:\Diagnostic\%date%.txt if errorlevel 1 echo -ALARM!!!- >>D:\Diagnostic\%date%.txt Далее пакетный файл добавляется в назначенное задание с необходимыми интервалами. Вместо фразы -ALARM!!!- пишите, что хотите ![]() Вуаля. |
Отправлено: 17:41, 03-03-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] [MPD5] логгирование внешнего IP-адреса клиента | skeletor | Программное обеспечение Linux и FreeBSD | 1 | 18-02-2011 14:08 | |
MSFT SQL Server - ISA 2004 Std + SQL Server 2000 SP4 Логгирование | Delirium | Программирование и базы данных | 7 | 31-07-2009 20:47 | |
Прочее - Нестабильность пинга | Bedneo | Сетевые технологии | 6 | 08-05-2009 11:45 | |
PowerShell - Логгирование операций с файлами | samael82 | Скриптовые языки администрирования Windows | 3 | 20-02-2009 05:20 | |
Установка одной временной директории для всех пользователей | red_dog | Microsoft Windows NT/2000/2003 | 2 | 15-12-2006 10:39 |
|