Как сохранить ping в файл

от admin

Как сохранить в текстовый файл вывод командной строки Windows

Командная строка — неизменный компонент любой операционной системы Windows, который берет свое происхождение прямиком от её предка — операционной системы MS-DOS. Данная программа имеет довольно широкие возможности, но сейчас мы поговорим о довольно примитивной вещи — сохранение (по факту — перенаправление) вывода командной строки в текстовый файл.

Использование перенаправления выполнения команд

В случае, если необходимо просто сохранить все, что вывела командная строка в текстовый файл, то нужно после введенной команды добавить символ «>», что приведет к созданию текстового файла и весь вывод командной строки отправится туда. Пример:

Как видно, командная строка не вывела никакого результата введенной команды на экран, но зато сохранила все в файл ping.txt. К сожалению, существуют ограничения перенаправления вывода, которые не позволяют одновременно отображать вывод и в окне командной строки, и сохранять их в текстовый файл. Однако, можно воспользоваться хитростью — сразу по завершению выполнения команды вывести содержимое текстового файла на экран с помощью команды type. Получится что-то следующее:

Если требуется файл не записывать (существующий текстовый файл будет перезаписан), а дописывать (существующий текстовый файл будет дополнен), нужно вместо одного символа «>» использовать два — «>>».

В случае, если в текстовый файл нужно сохранить так же какой-то текст (например, в составе bat файла), то можно воспользоваться комбинацией с командой echo:

Save Ping Output in a text file

I often have to ping servers for connectivity status. Is there a way to save the ping results (output) in a text file so that I can save entire day’s ping results in a text file.

I am using Windows XP SP3.

8 Answers 8

Use redirection, for example:

This will redirect all (standard) output from the program into filename.txt , which will be created if it doesn’t exist and overwritten if it does.

You can use >> instead of > to redirect the output to a file and append the results to the end of the file, instead of overwriting (with thanks to @Jane T for the reminder).

Note that you will not receive the normal on-screen output if you do this.

Update in response to comment

To delay between pings and record the time of each, you can do some scripting.

Here is a quick Windows batch file I’ve thrown together. It prints the time, pings Google, then waits for 3 seconds before repeating itself. I’m not a batch file expert so if anyone spots any problems please flag them up! And this probably isn’t the "best" way to achieve what you are after — that might make for a separate question really.

Save this in a .bat file somewhere, edit the ping target and delay time as you need it, then run the .bat using redirection to pump the output of the whole thing to a file. You may need to replace the sleep -m 3000 command with timeout /T 3 depending on your Windows version.

Note that this batch file never ends, but can be terminated by Ctrl + C and then Y if run from cmd . (You must press Y because it asks if you want to stop the batch file — even though you cannot see the question because you’ve redirected the output!)

DeePark.ru

Появилась задача записать в файл результат работы команды ping с указанием времени.

Задача возникла в следующем контексте:
В компании стоит аудиошлюз и в какой-то момент времени менеджеры сообщают что возникают проблемы со связью. Клиент слышит менеджера, менеджер не слышит клиента. Поскольку вопрос срочный, пытаемся решить его с тех поддержкой. Но поскольку в момент общения с техподдержкой всё хорошо, и по оборудованию всё работало. Они просят сообщить, как быстро отвечал их сервер в момент появления проблемы. Вот мы и сделаем так, что-бы менеджер сказал время проблемы, мы посмотрели это время в логах и сообщили, проседал канал или нет.

Читать:
Как открыть порт 1433 sql на брандмауэре сервера

while true; do TIME=`date +%T`;PING=`ping 213.221.45.121 -c 1 | grep "icmp_seq=1"`; echo "[$TIME] $PING" >>/home/prg/pingtime23.04.2019.log; tail -n 1 /home/prg/pingtime23.04.2019.log;sleep 1; done

Запустили и видим что команда выполняется в консоли.

А файл то создан? Проверим:

tail —lines=10 pingtime23.04.2019.log

Да, ping пишется со временем и в консоль и в файл!

А если у нас стоит Windows? Тогда команда для записи ping в файл со временем будет такой:

for /l %i in (0,0,1) do @cmd /c "echo.|set/p=%TIME:

0,8^%" >> c:\users\userpc\pinglog23.04.2019.log & ping -n 1 213.221.45.121 | findstr "Превышен Ответ" >> c:\users\userpc\pinglog23.04.2019.log & ping -n 2 localhost > nul

Кодировка созданного файла будет IBM866, так что блокнотом не посмотреть.

Второй случай с предысторией

На самом деле история та же. Два аудиошлюза IP телефонии и проблемы со связью. Необходимо исключить проблемы со скоростью доступа к серверу аудиошлюзов. Для этого ping со временем в лог файл таким образом (Операционная Ubuntu)

ping 213.221.45.121 | while read pong; do echo "$(date): $pong"; done > pingWithTime.log

Получаем что-то типа этого:

Как результат имеем большой файл из которого нам в какой-то момент понадобится получить информацию. Как?

grep -E '(Вт авг 27 14:23)' pingWithTime.log

Так мы получим все значения ping совершённые в 14:23 и сможем произвести анализ полученных данных.

Сохранить вывод Ping в текстовом файле

Мне часто приходится пинговать серверы за статусом подключения. Есть ли способ сохранить результаты пинга (вывод) в текстовом файле, чтобы я мог сохранить результаты пинга за весь день в текстовом файле.

Я использую Windows XP SP3.

6 ответов 6

Используйте перенаправление, например:

Это перенаправит весь (стандартный) вывод из программы в filename.txt , который будет создан, если он не существует, и перезаписан, если он существует.

Вы можете использовать >> вместо > чтобы перенаправить вывод в файл и добавить результаты в конец файла вместо перезаписи (спасибо @Jane T за напоминание).

Обратите внимание, что вы не получите нормальный вывод на экран, если вы сделаете это.

Обновление в ответ на комментарий

Чтобы задержать пинг и записывать время каждого, вы можете сделать некоторые сценарии.

Вот быстрый пакетный файл Windows, который я создал вместе. Он печатает время, пингует Google, затем ждет 3 секунды, а затем повторяется. Я не специалист по пакетным файлам, поэтому, если кто-то обнаружит какие-либо проблемы, отметьте их! И это, вероятно, не самый лучший способ достичь того, чего вы хотите, — это действительно может привести к отдельному вопросу.

Сохраните это в файле .bat где-нибудь, отредактируйте цель ping и время задержки, как вам нужно, затем запустите .bat с помощью перенаправления, чтобы перекачать вывод всей вещи в файл.

Обратите внимание, что этот пакетный файл никогда не заканчивается, но может быть завершен с помощью Ctrl + C и затем Y, если он запускается из cmd . (Вы должны нажать Y, потому что он спрашивает, хотите ли вы остановить пакетный файл — даже если вы не видите вопрос, потому что вы перенаправили вывод!)

Похожие статьи