The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема в написании регулярного выражения на python, !*! Alexadm, 04-Ноя-13, 16:08  [смотреть все]
Добрый день, коллеги..Изучаю Python и возникли непонятки..Дело вот в чём...
Имеется в linux команда на астере:asterisk -rx 'sip show peers', которая выдаёт следующую простыню:

отрывок
TEnnANT8806_IPPBX/core_88                              D   N   A  5080     OK (13 ms)
TEnnANT8807_IPPBX/core_88                              D   N   A  5080     OK (15 ms)
TEnnANT8808_IPPBX/core_88                              D       A  5080     OK (9 ms)  
TEnnANT8809_IPPBX/core_88                              D       A  5080     OK (10 ms)
TEnnANT8810_IPPBX/core_88                              D   N   A  5060     OK (6 ms)  
TEnnANT8811_IPPBX/core_88                              D   N   A  5060     OK (6 ms)  
TEnnANT8812_IPPBX/core_88                              D   N   A  5060     OK (6 ms)  
TEnnANT8813_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8814_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8815_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8816_IPPBX/core_88                              D       A  0        Unmonitored
TEnnANT8817_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8818_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8819_IPPBX/core_88                              D       A  35060    Unmonitored
TEnnANT8820_IPPBX/core_88                              D       A  0        Unmonitored
TEnnANT8821_IPPBX/core_88                              D   N   A  10020    OK (49 ms)
TEnnANT8822_IPPBX/core_88                              D   N   A  10020    OK (51 ms)
TEnnANT9901_IPPBX/core_99                              D   N   A  5060     OK (16 ms)
TEnnANT9902_IPPBX/core_99                              D   N   A  5060     OK (16 ms)
TEnnANT9903_IPPBX/core_99                              D   N   A  5060     OK (15 ms)
TEnnANT9904_IPPBX/core_99                              D   N   A  5060     OK (15 ms)
TEnnANT9905_IPPBX/core_99                              D   N   A  5060     OK (16 ms)
TEnnANT9906_IPPBX/core_99                              D   N   A  5060     OK (15 ms)
TEnnANT9907_IPPBX/core_99                              D   N   A  5060     OK (16 ms)
TEnnANT9908_IPPBX/core_99                              D   N   A  5060     OK (15 ms)

задача такова , что надо чекать значение в последнем столбце и смотреть значение выше 60 ms.. команду asterisk -rx 'sip show peers' повторять 3 раза, и если определённое значение на протяжении 3 попыток будет больше 60 ms, то выдавать его в почту...

Набросал некоторые части скрипта:

#!/usr/bin/env python

import subprocess
import re
import smtplib
from email.MIMEText import MIMEText

def asterisk_check():
        command = "asterisk -rx 'sip show peers' | awk '{print $1,$7,$8,$9}'"
        full_output = subprocess.call('{param1}'.format(param1=command), shell=True)

       awk = ""

asterisk_check()

#me = '___@__'
#you = '____@____'
#text = 'Asterisk Problem\n'
#subj = 'Asterisk Problem'
#
#server = "______"
#port = 25
#msg = MIMEText(text, "", "utf-8")
#msg['Subject'] = subj
#msg['From'] = me
#msg['To'] = you
#s = smtplib.SMTP(server, port)
#s.ehlo()
#s.starttls()
#s.ehlo()
#s.sendmail(me, you, msg.as_string())
#s.quit()

но вот , awk в скрипте питон это не правильно, хотелось бы использовать модуль re , но вот проблема с регулярным выражением, поэтому прошу вашей помощи... Заранее спасибо....

  • Проблема в написании регулярного выражения на python, !*! mrrrr, 21:56 , 04-Ноя-13 (1)
    Задача использовать именно модуль re? Если это не самоцель, то можно было бы распарсить как-то так:

    #!/usr/bin/env python
    from pyparsing import Word, alphas, nums, oneOf, Optional

    first = Word( alphas ) + Word( nums ) + "_" + Word( alphas ) + "/" + Word( alphas ) + "_" + Word( nums )
    second = "D"
    third = "N"
    forth = Word( alphas )
    fifth = Word( nums )
    sixth = Word( alphas )
    seventh = "(" + Word( nums ) + Word( alphas ) + ")"
    asterisk = "TEnnANT9906_IPPBX/core_99                              D   N   A  5060     OK (15 ms)"
    asterisk2 = "TEnnANT8819_IPPBX/core_88                              D       A  35060    Unmonitored"
    grammar = first + second + Optional(third) + forth + fifth + sixth + Optional(seventh)
    parsed = grammar.parseString( asterisk )
    parsed2 = grammar.parseString( asterisk2 )
    print parsed.asList()
    print parsed2.asList()
    print parsed[14]
    try:
        print parsed2[14]
    except IndexError:
        pass

    $ ./4.py
    ['TEnnANT', '9906', '_', 'IPPBX', '/', 'core', '_', '99', 'D', 'N', 'A', '5060', 'OK', '(', '15', 'ms', ')']
    ['TEnnANT', '8819', '_', 'IPPBX', '/', 'core', '_', '88', 'D', 'A', '35060', 'Unmonitored']
    15

    • Проблема в написании регулярного выражения на python, !*! Александр, 13:26 , 05-Ноя-13 (2)
      >[оверквотинг удален]
      > print parsed[14]
      > try:
      >     print parsed2[14]
      > except IndexError:
      >     pass
      > $ ./4.py
      > ['TEnnANT', '9906', '_', 'IPPBX', '/', 'core', '_', '99', 'D', 'N', 'A', '5060',
      > 'OK', '(', '15', 'ms', ')']
      > ['TEnnANT', '8819', '_', 'IPPBX', '/', 'core', '_', '88', 'D', 'A', '35060', 'Unmonitored']
      > 15

      Спасибо за помощь, но при выполнении вашего парсинга выдаётся следующая ошибка такого вида:

      Traceback (most recent call last):
        File "./asterisk_check.py", line 16, in <module>
          parsed = grammar.parseString( asterisk )
        File "/usr/lib/python2.7/dist-packages/pyparsing.py", line 1076, in parseString
          raise exc
      pyparsing.ParseException: Expected "D" (at char 25), (line:1, col:26)

      С чем может быть связана проблема не подскажете?? Спасибо за помощь

      • Проблема в написании регулярного выражения на python, !*! mrrrr, 16:36 , 05-Ноя-13 (3)
        > С чем может быть связана проблема не подскажете?? Спасибо за помощь

        Это не был production ready пример, просто мысль в определенном направлении. :-)
        Судя по ошибке во второй колонке кроме "D" может быть что-то еще. Как вариант - ничего. Пытался вчера найти описание, что вообще выдает команда asterisk -rx 'sip show peers', но сходу не нашел. Ориентировался на пару строк из вашего примера. А если дейтвительно делать, то логично иметь хорошее представление о предполагаемом выводе. Думаю, это верно и в случае, если вы будете разбирать вывод регулярными выражениями.

        • Проблема в написании регулярного выражения на python, !*! mrrrr, 16:54 , 05-Ноя-13 (4)
          С другой стороны, если вас awk устраивает, то не overkill ли для вас регулярки? Может, тогда так:
          with open ('/home/user/sip_show_peers.txt', 'r') as aster_out:
              for i in aster_out:
                  col = i.split()
                  print col[0], col[6:8]

          • Проблема в написании регулярного выражения на python, !*! mrrrr, 20:50 , 05-Ноя-13 (5)
            Если нужно кол-во милисекунд, то:
            with open ('/home/maccalan/sip_show_peers.txt', 'r') as aster_out:
                for i in aster_out:
                    m = re.search('(\d+) ms', i)
                    if m:
                        print m.group(1)


            • Проблема в написании регулярного выражения на python, !*! NuINu, 09:12 , 06-Ноя-13 (6)
              > Если нужно кол-во милисекунд, то:
              > with open ('/home/maccalan/sip_show_peers.txt', 'r') as aster_out:
              >     for i in aster_out:
              >         m = re.search('(\d+) ms',
              > i)
              >         if m:
              >            
              > print m.group(1)

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

              import re
              def work_parse(l):
                  name_symb='[a-zA-Z0-9_]'
                  pattern = '^(' + name_symb + '+)/(' + name_symb + '+)\s+(D\s+N\s+A|D\s+A)\s+(\d+)\s+(.+)'
                  result=re.match(pattern,l)
                  if result:
                      print("find for %s: %s")%(result.group(1), result.group(5)),
                      small_patt='OK\s+\((\d+)'
                      small_res=re.match(small_patt,result.group(5))
                      if small_res:
                          print " %s(sec)"%small_res.group(1)
                      else:
                          print " Unmonitored"
                  else:
                      print("parse asterisk string error")
                      

              if __name__=='__main__':
                  import timeit
                  f=open('asterisk_peers', 'r')
                  l=f.readline()
                  while l:
                      #print l
                      work_parse(l)
                      l=f.readline()
                  f.close()

              • Проблема в написании регулярного выражения на python, !*! Александр, 11:13 , 06-Ноя-13 (8)
                >[оверквотинг удален]
                >   print("parse asterisk string error")
                > if __name__=='__main__':
                >  import timeit
                >  f=open('asterisk_peers', 'r')
                >  l=f.readline()
                >  while l:
                >   #print l
                >   work_parse(l)
                >   l=f.readline()
                >  f.close()

                Вы правы, необходимо знать на каком пире такая задержка, интересный ход мысли в вашем скрипте, только что за файл f=open('asterisk_peers', 'r') ..

                я пробовал через регулярки таким образом:

                >>> import re
                >>> asterisk = "TEnnANT9906_IPPBX/core_99                              D   N   A  5060     OK (15 ms)"
                >>> search_regex = re.compile( ur"\((\d+) ms\)", re.M | re.S | re.U )
                >>> match = search_regex.search(asterisk)
                >>> match.groups()

                ('15',)

                но вот имеено мс мало играют роли...
                А как сделать чтобы команда asterisk -rx 'sip show peers' выполнялась 3 раза, и если все эти три раза на определённом пире есть юольшая задержка(свыше 60 mc), то выдавать в почту..

                реализацию отправки в почту я делал таким образом:

                me = '-----------------'
                you = '----------------'
                text = 'Asterisk Problem\n'
                subj = 'Asterisk Problem'

                server = "------------"
                port = 25
                msg = MIMEText(text, "", "utf-8")
                msg['Subject'] = subj
                msg['From'] = me
                msg['To'] = you
                s = smtplib.SMTP(server, port)
                s.ehlo()
                s.starttls()
                s.ehlo()
                s.sendmail(me, you, msg.as_string())
                s.quit()


                • Проблема в написании регулярного выражения на python, !*! NuINu, 11:39 , 06-Ноя-13 (11)
                  > Вы правы, необходимо знать на каком пире такая задержка, интересный ход мысли
                  > в вашем скрипте, только что за файл f=open('asterisk_peers', 'r') ..

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


                  > но вот имеено мс мало играют роли...
                  > А как сделать чтобы команда asterisk -rx 'sip show peers' выполнялась 3
                  > раза, и если все эти три раза на определённом пире есть
                  > юольшая задержка(свыше 60 mc), то выдавать в почту..

                  что бы эта команда выполнялась три раза - выполните ее ТРИ раза. а вот что бы сопоставить результаты выполнения команд вам нужно на первом проходе создать хеш массив, ключем в котором сделать имя пира, ну а значением 1, если превышена задержка, или 0 если задержка в норме, выполняя в последствии нужно просто добавлять по 1 в нужные элементы массива, если задержка превышена, по окончании работы проверьте хеш массив, и если найдете там что нибудь равное 3 отправляете на почту имена этих пиров.

        • Проблема в написании регулярного выражения на python, !*! Александр, 11:05 , 06-Ноя-13 (7)
          >> С чем может быть связана проблема не подскажете?? Спасибо за помощь
          > Это не был production ready пример, просто мысль в определенном направлении. :-)
          > Судя по ошибке во второй колонке кроме "D" может быть что-то еще.
          > Как вариант - ничего. Пытался вчера найти описание, что вообще выдает
          > команда asterisk -rx 'sip show peers', но сходу не нашел. Ориентировался
          > на пару строк из вашего примера. А если дейтвительно делать, то
          > логично иметь хорошее представление о предполагаемом выводе. Думаю, это верно и
          > в случае, если вы будете разбирать вывод регулярными выражениями.

          вот полный вывод команды:

          #asterisk -rx 'sip show peers'

          Name/username              Host                                    Dyn Forcerport ACL Port     Status    
          TEnnANT1101_IPPBX/core_11  ip                                       D   N   A  5063     OK (16 ms)
          TEnnANT1102_IPPBX/core_11  ip                                       D   N   A  5060     OK (9 ms)  
          TEnnANT1103_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1104_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1105_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1106_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1107_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1108_IPPBX/core_11  ip                                       D   N   A  1092     OK (9 ms)  
          TEnnANT1109_IPPBX/core_11  ip                                       D   N   A  1093     OK (5 ms)  
          TEnnANT1110_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1111_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1112_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1113_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1114_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1115_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1116_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1117_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1118_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1119_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1120_IPPBX/core_11  ip                                       D   N   A  5061     OK (9 ms)  
          TEnnANT1121_IPPBX/core_11  ip                                       D   N   A  1103     OK (12 ms)
          TEnnANT1122_IPPBX/core_11  ip                                       D   N   A  5062     OK (20 ms)
          TEnnANT1123_IPPBX/core_11  ip                                       D   N   A  1041     OK (20 ms)
          TEnnANT1124_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1125_IPPBX/core_11  (Unspecified)                            D   N   A  0        Unmonitored
          TEnnANT1126_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1127_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1128_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1129_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1130_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1131_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1132_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1133_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1134_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1135_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1136_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1137_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1138_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1139_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1140_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1141_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1142_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1143_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1144_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1145_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1146_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1147_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1148_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1149_IPPBX/core_11  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1400_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1401_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1402_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1403_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1404_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1405_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1406_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1407_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1408_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1409_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1410_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1411_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1412_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1413_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1414_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1415_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1416_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1417_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1418_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1419_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1420_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1421_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1422_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1423_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1424_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1425_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1426_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1427_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1428_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1429_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1430_IPPBX/core_14  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1601_IPPBX/core_16  ip                                       D   N   A  5060     OK (45 ms)
          TEnnANT1602_IPPBX/core_16  ip                                       D   N   A  5060     OK (44 ms)
          TEnnANT1603_IPPBX/core_16  ip                                       D   N   A  5060     OK (44 ms)
          TEnnANT1604_IPPBX/core_16  ip                                       D   N   A  5060     OK (44 ms)
          TEnnANT1605_IPPBX/core_16  ip                                       D   N   A  5060     OK (46 ms)
          TEnnANT1606_IPPBX/core_16  ip                                       D   N   A  5060     OK (45 ms)
          TEnnANT1607_IPPBX/core_16  ip                                       D   N   A  5060     OK (92 ms)
          TEnnANT1608_IPPBX/core_16  ip                                       D   N   A  5060     OK (92 ms)
          TEnnANT1609_IPPBX/core_16  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1610_IPPBX/core_16  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1800_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1801_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1802_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1803_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1804_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1805_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1806_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1807_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1808_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1809_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1810_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1811_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1812_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1813_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1814_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT1815_IPPBX/core_18  (Unspecified)                            D   N   A  0        UNKNOWN    
          TEnnANT2001_IPPBX/core_20  ip                                       D   N   A  5060     OK (22 ms)
          TEnnANT2002_IPPBX/core_20  ip                                       D   N   A  5060     OK (20 ms)
          TEnnANT2003_IPPBX/core_20  ip                                       D   N   A  5060     OK (21 ms)
          TEnnANT2004_IPPBX/core_20  ip                                       D   N   A  5060     OK (21 ms)
          TEnnANT2005_IPPBX/core_20  ip                                       D   N   A  5060     OK (23 ms)
          TEnnANT2006_IPPBX/core_20  ip                                       D   N   A  5060     OK (20 ms)
          TEnnANT2007_IPPBX/core_20  ip                                       D   N   A  5060     OK (22 ms)
          TEnnANT2008_IPPBX/core_20  ip                                       D   N   A  5060     OK (54 ms)
          TEnnANT2009_IPPBX/core_20  (Unspecified)                            D   N   A  0        UNKNOWN    

          • Проблема в написании регулярного выражения на python, !*! NuINu, 11:27 , 06-Ноя-13 (9)
            > вот полный вывод команды:
            > #asterisk -rx 'sip show peers'

            Александр, судя по всему у вас нет проблем с питоном? поменяйте чуть мою регулярку, и будет вам счастье.

            можно так:
            pattern = '^(' + name_symb + '+)/(' + name_symb + '+)+\s+\S+\s+(D\s+N\s+A|D\s+A)\s+(\d+)\s+(.+)'
            можно так:

            ip_symb='[a-zA-Z0-9_()]'
            pattern = '^(' + name_symb + '+)/(' + name_symb + '+)+\s+' + ip_symb + '+\s+(D\s+N\s+A|D\s+A)\s+(\d+)\s+(.+)'

            • Проблема в написании регулярного выражения на python, !*! Александр, 12:22 , 06-Ноя-13 (12)
              >> вот полный вывод команды:
              >> #asterisk -rx 'sip show peers'
              > Александр, судя по всему у вас нет проблем с питоном? поменяйте чуть
              > мою регулярку, и будет вам счастье.
              > можно так:
              > pattern = '^(' + name_symb + '+)/(' + name_symb + '+)+\s+\S+\s+(D\s+N\s+A|D\s+A)\s+(\d+)\s+(.+)'
              > можно так:
              > ip_symb='[a-zA-Z0-9_()]'
              > pattern = '^(' + name_symb + '+)/(' + name_symb + '+)+\s+' +
              > ip_symb + '+\s+(D\s+N\s+A|D\s+A)\s+(\d+)\s+(.+)'

              Спасибо за помощь,попробую,отпишусь..

  • Проблема в написании регулярного выражения на python, !*! pavel_simple, 11:35 , 06-Ноя-13 (10) +1
    ИМХО
    неправильная постановка задачи всегда ведёт к неправильному/неоптимальному её решению

    google asterisk+snmp
    google python+snmp




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру