This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Linux - Командная строка

Не работает? Начинай читать инструкцию.

Как записать выполнение в файл лог пинга (команда ping) с указанием времени отправки/получения пакета или Destination Host Unreachable ?

Команду ping обычно используют для проверки доступности узла. При обычном запуске ping, на экране не отображается время отправки/получения пакета. Но это легко поправить, особенно если ping должен выполняться продолжительное время, и есть необходимость записать выполнение команды ping в файл, с указанием времени выполнения команды.

Предлагаю ознакомиться с предложениями моих партнёров

Windows - записать выполнение команды ping в файл со временем ? Как создать bat файл ?

Команда ping со временем одной строкой

Если у вас открыта консоль, то выполняем команду ping результат которой будет виден на экране и записан в файл, для дальнейшего анализа.

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

На экране монитора и в файле Вы получите результат:

[16:50:18] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=402 ms
[16:50:19] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=200 ms
[16:50:20] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=210 ms
[16:50:22] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=211 ms
[16:50:23] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=206 ms
[16:50:24] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=216 ms

Лог команды ping с указанием времени записать в файл

Есть второй вариант записать в файл лог команды ping где указать время отправки/получения пакета. Например создать файл p.sh с кодом bash

#!/bin/bash
while true
 do
 TIME=`date +%T`
 PING=`ping 192.168.1.102 -c 1 | grep 'icmp_seq=1'`
 echo "[$TIME] $PING" >>/root/pingtime.log
 tail -n 1 /root/pingtime.log
 sleep 1
 done

Далее сделаем его исполняемым

chmod +x p.sh

Потом запустим для выполнения

./p.sh

Содержание файла /root/pingtime.log будет таким же как и в первом варианте

[16:00:51] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=102 ms
[16:00:52] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=99.2 ms
[16:00:53]
[16:01:04]
[16:01:15] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=12.7 ms
[16:01:16] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=5.00 ms
[16:01:17] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=21.1 ms
[16:01:18] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=7.87 ms
[16:01:19] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=9.33 ms
[16:01:20] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=11.1 ms
[16:01:21]
[16:01:32] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:36] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:40] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:44] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:48] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:52] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=3.43 ms
[16:01:53] 64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=3.02 ms

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

Предлагаю ознакомиться с предложениями моих партнёров

Допустим Вы хотите проанализировать, как доступен заданный узел с вашего компьютера в течении суток. Анализировать полученный файл будет слишком сложно. Для облегчения задачи, нам пригодиться команда grep

Для это надо создать файл с таким содержанием

#!/bin/bash
while true
 do
 TIME=`date +%T`
 PING=`ping 192.168.1.102 -c 1 | grep 'icmp_seq=1'`
 echo "[$TIME] $PING" >>/root/pingtime.log
 tail -n 1 /root/pingtime.log
 sleep 1
grep -v 'bytes' /root/pingtime.log > /root/pingtime_grep.log
 done

В результате у Вас получится ещё один файл pingtime_grep.log, в котором не будет удачных пингов, вот такого содержания

[16:01:40] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:44] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:48] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:01:58]
[16:02:09]
[16:02:30]
[16:02:41]
[16:02:52] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable
[16:02:56]
[16:03:00] From 192.168.1.8 icmp_seq=1 Destination Host Unreachable