Как управлять & ldquo; Ping & rdquo; время отображения и дата пинга

Есть два способа сделать это с помощью SSH.

Тоннель Все с прокси-сервером SOCKS

Войдите на удаленный компьютер, используя следующую команду:

[ f1]

Теперь перейдите к настройкам прокси-сервера вашего браузера и настройте его для использования прокси-сервера SOCKS с именем хоста 127.0.0.1 и портом 8080 (или любым другим портом, который вы передали в опцию -D). Теперь все страницы, загруженные в вашем веб-браузере, будут туннелироваться через SSH-соединение. Теперь вы должны иметь доступ к частной веб-странице так же, как и с удаленного хоста.

Как только вы закончите, установите настройки прокси-сервера вашего браузера в нормальное состояние.

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

Тоннель Все с прокси-сервером SOCKS

[d9 ] Альтернативный метод заключается в использовании SSH для пересылки одного порта:

ssh -L 8080:server-hostname:80 remote-host

Теперь, если вы укажете свой веб-браузер на http://localhost:8080/, вы должны увидеть содержимое http://server-hostname/, как это было бы видно из удаленный хост.

Преимущество этого метода заключается в том, что он оставит остальную часть трафика браузера. Недостатком является то, что некоторые ссылки могут не работать, если удаленный сайт использует абсолютные ссылки на URL. Если сайт в основном использует относительные URL-ссылки, то этот метод должен быть достаточным.

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

28
задан 15 May 2012 в 14:17

31 ответ

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 25 July 2018 в 18:55

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 31 July 2018 в 11:34

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 2 August 2018 в 01:03

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 4 August 2018 в 16:34

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 6 August 2018 в 01:14

Использование:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

Вы получите результат следующим образом:

enter image description here [/g0]

51
ответ дан 10 August 2018 в 07:19

Еще одна возможность использовать параметр ping -D, который получает временную метку как время Unix.

tilo@t-ubuntu:~$ ping google.com -D
PING google.com (173.194.33.73) 56(84) bytes of data.
[1388886989.442413] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=1 ttl=57 time=11.1 ms
[1388886990.443845] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=2 ttl=57 time=11.0 ms
[1388886991.445200] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=3 ttl=57 time=10.8 ms
[1388886992.446617] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=4 ttl=57 time=10.9 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 10.860/11.005/11.139/0.123 ms
tilo@t-ubuntu:~$ 

Здесь версия команды «Achu» с немного отличающимся форматом:

ping www.google.com -i 10 -c 3000 | while read pong; do echo "$(date +%Y-%m-%d_%H%M%S): $pong"; done >PingTest_2014-01-04.log

Это вас:

2014-01-04_175748: 64 bytes from sea09s16-in-f19.1e100.net (173.194.33.115): icmp_req=13 ttl=57 time=10.5 ms
8
ответ дан 25 May 2018 в 11:24

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в , но выход ping передается по каналу gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пройдете -c n, чтобы сделать остановку ping после n pings, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычную статистику .

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур оболочки while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT, когда нажата кнопка Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажатие C + C в терминале, где он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping , Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы SIGINT [ ! d10], который запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Затем первый выводит идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем с другого терминала вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить ее печатать статистику.

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

Дальнейшее чтение:

Ответ Алина на «Как вывести текущую дату и время и добавить в конце каждой строки, содержащие« Hello »для переполнения стека. 9.1.5. Функции времени в Gawk: эффективное программирование AWK (официальное справочное руководство Gawk). man ping - «Когда указанное количество пакетов было отправлено (и получено), или если программа завершена с помощью SIGINT, отображается краткое резюме».
2
ответ дан 25 May 2018 в 11:24
  • 1
    есть ли способ отправить ctrl + c в ping? – atti 20 March 2018 в 16:04
  • 2
    @atti Да, вы можете отправить SIGINT (что то, что нажимаете Ctrl + C) к процессу ping, в частности, используя kill или killall. Я подробно объяснил этот ответ. – Eliah Kagan 20 March 2018 в 21:00
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает [ ! d1]

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 25 May 2018 в 11:24

(спасибо Ачу и Элиа Кагану за идеи) есть способ

добавить время к выводу ping, сохранить сноски ping и завершить всю эту конструкцию с помощью ctrl+c [!d1 ]

для этого нужно проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT:

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 25 May 2018 в 11:24

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 25 July 2018 в 18:55
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 25 July 2018 в 18:55
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 31 July 2018 в 11:34

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 31 July 2018 в 11:34

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

9
ответ дан 31 July 2018 в 11:34

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 2 August 2018 в 01:03

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

9
ответ дан 2 August 2018 в 01:03

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

9
ответ дан 4 August 2018 в 16:34
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 4 August 2018 в 16:34

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 4 August 2018 в 16:34

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 6 August 2018 в 01:14

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

9
ответ дан 6 August 2018 в 01:14

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 7 August 2018 в 18:39
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 7 August 2018 в 18:39
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 10 August 2018 в 07:19

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 10 August 2018 в 07:19

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

10
ответ дан 10 August 2018 в 07:19
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

Если вы хотите сохранить его в файле, введите следующую команду в терминал

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

Вам не нужно создавать текстовые файлы, это автоматически сделает

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms
0
ответ дан 15 August 2018 в 19:20

(спасибо Ачу и Элиа Кагану за идеи) есть способ

  • добавить время к выводу ping
  • сохранить сноски ping
  • и завершите всю эту конструкцию с помощью ctrl+c

, чтобы сделать это, следует проинструктировать правую часть команды (после трубы), чтобы игнорировать SIGINT с помощью trap "" INT :

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
-1
ответ дан 15 August 2018 в 19:20

Вы также можете использовать gawk (или awk, если ваш /etc/alternatives/awk указывает на /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

Это похоже на подход в ответе Achu , но вывод ping передается на gawk вместо цикла оболочки, который вызывает date. Как и в случае с этим подходом, он работает без -c, но если вы не пропустите -c n, чтобы сделать остановку пинга после n пингов, и вы остановите цикл с помощью Ctrl + C, ping не будет печатать обычные статистические данные.

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

Это происходит, если выход ping подается на канал gawk или в контур while. Причина в том, что команда на правой стороне канала, а не ping, получает SIGINT при нажатии Ctrl + C, а ping не знает, чтобы распечатать статистику перед ее прекращением.

Если вы запустили ping без -c в левой части канала (как показано выше), и вы хотите закончить его таким образом, чтобы он все еще печатал статистику, тогда вместо нажав Ctrl + C в терминале, на котором он запущен, вы можете запустить kill -INT PID с другого терминала, заменив PID идентификатором процесса команды ping. Если вы используете только один экземпляр ping, вы можете просто использовать killall -INT ping.

В качестве альтернативы вы можете заменить команду ping на левой стороне трубы на команда , которая запускает оболочку, сообщает идентификатор процесса этой оболочки, а затем заменяет эту оболочку командой ping (заставляя ее иметь тот же PID):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

Тогда в первой строке вывода будет показан идентификатор процесса команды ping (который обычно будет отличаться каждый раз). Это будет выглядеть так, но с другим временем и датой и, возможно, с другим идентификатором процесса:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

Затем, с другого терминала, вы можете запустить kill -INT 7557, заменив 7557 на фактическое идентификатор процесса, который вы видели, чтобы завершить команду ping таким образом, чтобы заставить его печатать статистику.

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

Дальнейшее чтение:

10
ответ дан 15 August 2018 в 19:20

Другие вопросы по тегам:

Похожие вопросы: