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 с указанием времени.
Задача возникла в следующем контексте:
В компании стоит аудиошлюз и в какой-то момент времени менеджеры сообщают что возникают проблемы со связью. Клиент слышит менеджера, менеджер не слышит клиента. Поскольку вопрос срочный, пытаемся решить его с тех поддержкой. Но поскольку в момент общения с техподдержкой всё хорошо, и по оборудованию всё работало. Они просят сообщить, как быстро отвечал их сервер в момент появления проблемы. Вот мы и сделаем так, что-бы менеджер сказал время проблемы, мы посмотрели это время в логах и сообщили, проседал канал или нет.
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, потому что он спрашивает, хотите ли вы остановить пакетный файл — даже если вы не видите вопрос, потому что вы перенаправили вывод!)
Как перенаправить вывод командной строки в файл [легко]
Используйте оператор перенаправления, чтобы перенаправить вывод команды в файл. Это один из наших любимых приемов и хитростей командной строки.
Вместо этого всю информацию, отображаемую в командной строке после выполнения команды, можно сохранить в файл, который вы можете открыть в Windows для последующего использования или манипулирования, как вам нравится.
Хотя существует несколько операторов перенаправления, о которых вы можете подробно прочитать здесь, два, в частности, используются для вывода результатов команды в файл: знак больше, >, и двойной знак больше, >>.
Как использовать операторы перенаправления
Самый простой способ узнать, как использовать эти операторы перенаправления, — это посмотреть несколько примеров:
ipconfig / все> mynetworksettings.txt
:max_bytes(150000):strip_icc()/ipconfig-all-redirect-txt-5b7464a3c9e77c00575657c0.png)
Перенаправление результатов ipconfig в файл TXT.
В этом примере вся информация о конфигурации сети обычно отображается на экране после запуска IPCONFIG / все, сохраняется в файл с именем mynetworksettings.txt. Он хранится в папке слева от команды, в данном случае C: Users jonfi.
Это > оператор перенаправления находится между командой ipconfig и именем файла. Если файл уже существует, он будет перезаписан. Если его еще нет, он будет создан.
Хотя файл будет создан, если он еще не существует, папки не будут. Чтобы сохранить вывод команды в файл в определенной папке, которая еще не существует, сначала создайте папку, а затем запустите команду. Создавайте папки, не выходя из командной строки, с помощью команды mkdir.
ping 10.1.0.12> "C: Users jonfi Desktop Ping Results.txt"
:max_bytes(150000):strip_icc()/ping-command-to-txt-file-5b746483c9e77c0050f6f24c.png)
Перенаправление результатов "ping" в файл TXT в другой папке.
Здесь, когда выполняется команда ping, командная строка выводит результаты в файл с именем Ping Results.txt расположен на рабочем столе пользователя jonfi, который находится по адресу C: Users jonfi Desktop. Полный путь к файлу заключен в кавычки, потому что был задействован пробел.
Помните, что при использовании > оператор перенаправления, указанный файл создается, если он еще не существует, и перезаписывается, если он существует.
Оператор перенаправления добавления
Оператор двойной стрелки добавляет, а не заменяет файл:
ipconfig / all >> \ сервер файлы officenetsettings.log
:max_bytes(150000):strip_icc()/ipconfig-to-txt-file-5b7465afc9e77c0057dda789.png)
Добавление результатов «ipconfig» к существующему файлу журнала.
В этом примере используется >> оператор перенаправления, который работает почти так же, как > только вместо перезаписи выходного файла, если он существует, он добавляет выходные данные команды в конец файла.
Вот пример того, как этот файл журнала может выглядеть после того, как в него была экспортирована команда:
:max_bytes(150000):strip_icc()/cmd-output-log-file-5b7469bb46e0fb00503ead25.png)
Журнал результатов командной строки.
Это >> Оператор перенаправления полезен, когда вы собираете аналогичную информацию с разных компьютеров или команд и хотите, чтобы все эти данные были в одном файле.
Приведенные выше примеры операторов перенаправления находятся в контексте командной строки, но вы также можете использовать их в BAT-файле. Когда вы используете BAT-файл для передачи вывода команды в текстовый файл, используются те же самые команды, которые описаны выше, но вместо нажатия вводить чтобы запустить их, вам просто нужно открыть файл .BAT.
Использование операторов перенаправления в пакетных файлах
Операторы перенаправления работают в пакетных файлах, включая команду так же, как и в командной строке:
@ECHO OFF
:: Вывести tracert в текстовый файл.
TITLE Журнал Tracert
tracert yahoo.com> Z: yahootracert.txt
:max_bytes(150000):strip_icc()/tracert-redirection-operator-bat-5c5c64f0c9e77c000159c273.png)
Выше приведен пример того, как создать командный файл, в котором используется оператор перенаправления с командой tracert.