Guest User

Untitled

a guest
Mar 21st, 2017
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.58 KB | None | 0 0
  1. yukra@yukra-ThinkPad-X230 ~/z $ cat 1
  2. Host                                    dnsmgr Username       Refresh State                Reg.Time
  3. xx.xx.xx.214:5060                        N      0xxnnnnn02         585 Registered           Tue, 21 Mar 2017 13:16:48
  4. xx.xx.xx.214:5060                        N      0xxnnnnn60         585 Registered           Tue, 21 Mar 2017 13:16:49
  5. xx.xx.xx.214:5060                        N      0xxnnnnn10         585 Registered           Tue, 21 Mar 2017 13:16:49
  6. xx.xx.xx.214:5060                        N      0xxnnnnn72         585 Registered           Tue, 21 Mar 2017 13:16:49
  7. pbx05.xxxx.com:5060                      Y      user03             585 Registered           Tue, 21 Mar 2017 13:16:49
  8. 5 SIP registrations.
  9. yukra@yukra-ThinkPad-X230 ~/z $ cat z.sh
  10. #!/bin/bash
  11.     fun_error1(){
  12.         echo "Ошибка! Отсутствуют параметры (trunks или ips или registration_monitoring)"
  13.     }
  14.     fun_error2(){
  15.         echo "Ошибка! Отсутствуют параметры (название_транка)"
  16.     }
  17.  
  18.     if [ $# -ne 0 ]
  19.     then
  20.         case $1 in
  21.         trunks)
  22.             cat 1 | sed -e 1d -e '$d' | awk -v ORS="" 'BEGIN { print "{\"data\":["} { print "{\"{#TRUNKNAME}\":\""$3"\"}," } END { print "]}" }' | sed 's/,]}$/]}\n/' ;;
  23.         ips)
  24.             cat 1 | sed -e 1d -e '$d' | awk ' BEGIN { print "{\"data\":[" } !seen[$1]++ { gsub(/:.+/, "", $1); print "{\"{#TRUNKIP}\":\""$1"\"}," } END { print "]}" }' | tr -d '\n' | sed 's/,]}$/]}\n/' ;;
  25.         registration_monitoring)
  26.             if [ $# -eq 2 ]
  27.             then
  28.                 cat 1 |grep -w $2 | awk '{print $5}'
  29.             else
  30.                 fun_error2
  31.             fi ;;
  32.         *)
  33.             fun_error1 ;;
  34.         esac
  35.     else
  36.         fun_error1
  37.     fi
  38. yukra@yukra-ThinkPad-X230 ~/z $ ./z.sh trunks | json_pp > z.out
  39. yukra@yukra-ThinkPad-X230 ~/z $ cat 1 | awk 'BEGIN {ORS=""; FS="[: \t\n]+";print "{\"data\":["} {if ($0 !~ /[0-9]+ SIP registrations|Host +dnsmgr +Username +Refresh +State +Reg.Time/) printf "%s{\"{#TRUNKNAME}\" : \"%s\"}" ,separator,$4,  separator = ", "} END { print "]}"}' | json_pp > a.out
  40. yukra@yukra-ThinkPad-X230 ~/z $ diff a.out z.out
  41. yukra@yukra-ThinkPad-X230 ~/z $ cat a.out
  42. {
  43.    "data" : [
  44.       {
  45.          "{#TRUNKNAME}" : "0xxnnnnn02"
  46.       },
  47.       {
  48.          "{#TRUNKNAME}" : "0xxnnnnn60"
  49.       },
  50.       {
  51.          "{#TRUNKNAME}" : "0xxnnnnn10"
  52.       },
  53.       {
  54.          "{#TRUNKNAME}" : "0xxnnnnn72"
  55.       },
  56.       {
  57.          "{#TRUNKNAME}" : "user03"
  58.       }
  59.    ]
  60. }
  61. yukra@yukra-ThinkPad-X230 ~/z $
Advertisement
Add Comment
Please, Sign In to add comment