Расширить обработку цепочки трубопроводов (… Asterisk -> grep -> ping)

Я хочу использовать одно из значений из команды и использовать ее в другой команде Example Command следующим образом

cat /var/log/asterisk/full | grep "UNREACHABLE" | awk '{print $7;}'| sort | uniq | xargs -I % asterisk -rx 'sip show peer %'| grep "Callerid\|Useragent\|Name\|Addr->IP" 

Линии, передающие UNREACHABLE, следующие.

[Oct 8 04:10:55] УВЕДОМЛЕНИЕ [29814] chan_sip.c: Peer 'sip-437-id' теперь НЕПРАВИЛЬНО! Последняя квалификация: 26

 awk '{print $7;}' 

'sip-437-id' Я получаю эту информацию

 sort | uniq 

сортировка и только устройство uniq

  xargs -I % asterisk -rx 'sip show peer %' 

Я получаю больше информации от xargs с этим расширением пользователя

 * Name : sip-437-id Secret : <Set> MD5Secret : <Not set> Remote Secret: <Not set> Context :default Subscr.Cont. : default Language : AMA flags :Unknown Transfer mode: open CallingPres : Presentation Allowed,Not Screened Callgroup : Pickupgroup : MOH Suggest : Mailbox : 492@default VM Extension : asterisk LastMsgsSent : 0/0 Call limit : 2 Max forwards : 0 Dynamic : Yes Callerid : "TELEPHONE" <492> MaxCallBR : 384 kbps Expire : 1671 Insecure : no Force rport : No ACL : Yes DirectMedACL : No T.38 support : No T.38 EC mode : Unknown T.38 > MaxDtgrm: 4294967295 DirectMedia : No PromiscRedir : No > User=Phone : No Video Support: No Text Support : No Ign SDPver : No Trust RPID : Yes Send RPID : Yes TrustIDOutbnd:Legacy Subscriptions: Yes Overlap dial : Yes DTMFmode :rfc2833 Timer T1 : 500 Timer B : 32000 ToHost : Addr->IP : 10.34.34.45:5063 Defaddr->IP : (null) Prim.Transp. : UDP Allowed.Trsp : UDP Def. U sername: sip-492-id SIP Options : (none) Codecs : 0x10c (ulaw|alaw|g729) Codec Order : (g729:20,ulaw:20,alaw:20) Auto-Framing : No Status : OK (26 ms) Useragent : Yealink SIP-T20P 9.61.0.85 Reg. Contact : sip:sip-437-id @10.34.34.45:5063 Qualify Freq : 60000 ms Sess-Timers : Accept Sess-Refresh : uas Sess-Expires : 1800 secs Min-Sess : 90 secs RTP Engine : asterisk Parkinglot : Use Reason : No Encryption : No grep "Callerid\|Useragent\|Name\|Addr->IP" 

Я получаю информацию, которая мне нужна от этой информации.

 > * Name : sip-437-id > Callerid : "TELEPHONE" <492> > Addr->IP : 10.34.34.45:5063 > Useragent : Yealink SIP-T20P 9.61.0.85 > Addr->IP : 10.34.34.45:5063 

эта информация будет написана на экране Addr-> IP: 10.34.34.45:5063

Я хочу выполнить IP-адрес и распечатать его в соответствии с информацией

например:

 > * Name : sip-437-id > Callerid : "TELEPHONE" <492> > Addr->IP : 10.34.34.45:5063 > Useragent : Yealink SIP-T20P 9.61.0.85 > PING 10.34.34.45 (10.34.34.45) 56(84) bytes of data. 64 bytes from > 10.34.34.45: icmp_req=1 ttl=62 time=6.22 ms 64 bytes from > 10.34.34.45: icmp_req=2 ttl=62 time=6.25 ms 

должен показать результат и продолжить обработку

  • Небуферизованная команда socat для подключения последовательных портов на удаленных компьютерах и регистрации данных
  • Время, необходимое для вывода трубы на голову / хвост
  • Развернуть заполнители с одинаковыми именами в текстовом файле?
  • uniq и bash для цикла, не записывающего в stdout перед закрытием stdin (для системы уведомлений посетителей в одной строке)
  • Выход трубопровода sed / grep не работает
  • Используйте команду grep и найдите
  • Массив из команд с каналами не работает
  • не может получить доступ к стандартным выводам из команды
  • One Solution collect form web for “Расширить обработку цепочки трубопроводов (… Asterisk -> grep -> ping)”

    Оптимизированное решение:

     awk '/UNREACHABLE/{ print $7 }' /var/log/asterisk/full | sort -u \ | xargs -I % asterisk -rx 'sip show peer %' \ | grep "Callerid\|Useragent\|Name\|Addr->IP" \ | awk -F':' '1;/Addr->IP/{ system("ping -c4 "$2)}' 
    Linux и Unix - лучшая ОС в мире.