В настоящее время я работаю в большой компании, и у нас есть серьезные проблемы с задержками. Это происходит в системе управления процессом и является недопустимым (открытие клапана иногда занимает 2 минуты до запуска команды)
Я хочу перепроверить, когда сетевая команда говорит: «В сети все в порядке». Итак, я хочу создать цикл, который пингует сервер и записывает результат в текстовый файл.
Я не специалист по пакетной обработке, но вы думаете, этот код является правильным?
@ECHO OFF
:LOOPSTART
time /T
ping xxx.xx.x.x -t >> filename.txt
sleep -m 3000
GOTO LOOPSTART
windows
batch-file
ping
infinite-loop
Waza_Be
источник
источник
Ответы:
Выглядит хорошо для меня, но нет необходимости зацикливать его, если вы хотите постоянно пинговать IP. Тогда вы можете просто сделать это так:
Если вы хотите пинговать каждую X минуту, используйте цикл:
Как видите, я заменил
sleep
команду наtimeout
. Это потому, чтоsleep
не всегда доступно в некоторых системах, в то время какtimeout
обычно.Отсутствует
sleep
илиtimeout
команды в вашей системе? Не волнуйся. Просто заменитеtimeout
следующим хаком:Этот хак просто пингует ваш локальный адрес, и, поскольку он будет реагировать мгновенно, мы можем использовать его для эмуляции задержки выполнения.
источник
timeout
наsleep
. В какой версии Windows вы это делаете?Для однострочного решения используйте следующее:
NB:
xxx.xxx.xxx.xxx
наgoogle.com
3000
к60
(за 1 мин) или10
( в течение 10 секунд)%
на%%
источник
Для решения Windows, если вы готовы установить wtee.exe , будет работать следующее ( pingloop.bat ):
Ура!
источник
Я знаю, что это вопрос Windows (и старый вопрос), но, возможно, он похож на Linux и OSX. Это первое, что пришло мне в голову, когда я искал простую команду для сохранения сетевого трафика на моем ноутбуке. Может быть полезным для тех, кто ищет что-то подобное.
в скрипте bash:
Одна строка исключает Google DNS каждые 30 секунд:
Работает в OSX и Linux, но должно быть довольно стандартным, не знаю, на какой системе вы работаете.
источник
Тайм-аут не совпадает с тем, что вы ищете в качестве «ожидания». Переключатель тайм-аута с помощью команды ping Windows просто сообщает командному окну, как долго ждать перед получением ответа, а не сколько ждать перед отправкой СЛЕДУЮЩЕГО ответа.
источник
Вопрос не совсем понятен. По-видимому, в непрерывном цикле нет никакого смысла в пакетном файле, присоединяющемся к файлу. Особенно, когда этот пакетный файл запускается повторяющимся внешним событием ... если только вы не хотите заполнить место на диске ... или инициировать тонны командных строк и задушить систему ...
Я предполагаю, что должен быть некоторый период времени для тестирования, а затем партия должна закончиться. Я также предполагаю, что сегодня большинство MS Windows оснащены Powershell, что может оказаться полезным в этом случае. Вот этот двойник:
Это можно поместить в пакетный файл или запустить как скрипт powershell, в этом случае удалите «powershell» и двойные кавычки.
Тем не менее, bash на Windows кажется лучшим вариантом ...
источник
расширяя ответ Спарксом выше, я поместил его однострочный код в командный файл с некоторыми изменениями.
сохраненный как PingD.bat, используйте следующую команду для выполнения PingD [имя машины / IP] [задержка между пингами в секундах]
например, PingD MyDC01 10 будет отправлять пинг на MyDC01 каждые 10 секунд.
источник
Если вы хотите просто вставить его в командное окно на окнах ...
(для / l% a in () do @for / f "tokens = *"% b in ('ping -w 1000 -n 1 8.8.8.8 ^ | findstr "Запрос ответа неизвестного адресата"') do @echo% b & timeout 3> NUL)
Это пинг каждые 3 секунды ... пока вы не остановите его
Это лучше, потому что вам не нужно записывать в файл журнала (зачем вам действительно нужен файл журнала) только в непосредственное окно, и оно дает вам желаемые результаты "немедленно" :)
Если по какой-либо причине вы также можете выполнить конвейеризацию в файл журнала, выполнив следующее: (для / l% a in () сделайте @for / f "tokens = *"% b in ('ping -w 1000 -n 1 8.8). 8.8 ^ | findstr "Запрос ответа неизвестного адресата" ') do @echo% b & timeout 3> NUL)> file.txt
Кроме того, вы можете настроить тайм-аут, изменив значение после «тайм-аут», как это в этом случае 3 секунды ...
И вам не нужно сохранять в командный файл ... Просто скопируйте и вставьте эту текстовую строку из этого текста, который хранится в сохраненном облачном хранилище ... или в папке команд, которые вы хотели бы использовать ... и т.д ..
источник
В системах на базе Windows мы можем использовать следующую команду для проверки связи с сервером после определенного интервала
ping xxx.xxx.xxx.xxx -w xxxx -n xx >> c: \ logfile.txt
где -w указывает интервалы в миллисекундах, поэтому 1000 ~ 1 секунда => 3000 в течение 3-секундной задержки -n указывает, сколько раз ping будет отправлять запрос на сервер в xxx.xxx.xxx.xxx.
источник
Это команда windows, которую я использую для проверки связи с определенным IP-адресом с заданным интервалом (в данном примере 10 секунд):
-т постоянно говорит пинг.
-W говорит, подождите это задолго до следующего пинга. Вот пример ожидания в 1 минуту:
Наслаждайтесь, и удачи!
источник
-w
указывает максимальное время ожидания, прежде чем считать пинг «потерянным», а не время между пингами.