2 августа 2010 г.

Интресные команды Cisco IOS CLI

Интресные команды Cisco IOS CLI
Автор сайта на котором я нашел шпаргалку к экзамену CCNA продает книгу Cisco IOS Cool Commands в которой описывает использование "do", "/", "+","|". В принципе тема интересная, но 12 разделов и цена в 70 американских монет - это слишком.  Я не в коем случае не пытаюсь преуменьшить ценность данного пособия и важность проделанной автором работы, но сейчас, на этапе подготовки к экзамену CCNA, эта книга будет пособием по высшему пилотажу для того кто еще только осваивает летное дело. В тоже время, некоторые аспекты данной темы могут быть полезны уже сейчас.
Выполнение команд  EXEC mode из configuration mode
Такую возможность предоставляет команда "do". Это касается не только global configuration mode. Командой "do" можно также пользоваться в interface configuration mode, line configuration mode.  Например вот так:

R1(config-if)#do ping 192.168.254.1 

Использование команды do позволяет сэкономить немного времени, так как нет необходимости выходить из configuration mode для того чтобы проверить сделанные настройки.

Поиск и фильтрация  CLI Output
Некоторые команды CISCO IOS CLI очень информативны. В частности команда show interfaces, которая регулярно встречается в лабораторных работах и практических задания в рамках курса CCNA.  Для того чтобы сократить вывод до необходимого в данном конкретном случае объема, можно пользоваться фильтрацией. Тема фильтрации очень объемна, так как включает в себя регулярные выражения, которыми можно пользоваться при создании фильтров, но  для выполнения лабораторных работ эту тему изучать в полном объеме пока нет необходимости. Для того чтобы упростить процесс выполнения лабораторных работ достаточно будет разобраться с основами.
Для того чтобы направить вывод команды на фильтрацию необходимо ввести после команды "|" . После нужно указать параметры фильтрации. Наиболее часто используемыми буду include регулярное выражение и section регулярное выражение. Параметр section позволяет убрать из вывода команды все кроме определенного раздела. Этим очень удобно пользоваться при просмотре конфигурации маршрутизатора. Например можно вывести только ту часть конфигурации которая касается интерфейсов. Пример:

R1#show running-config | section interface
 
interface FastEthernet0/0
  ip address 192.168.254.254 255.255.255.0
  duplex auto
  speed auto
interface FastEthernet0/1
  ip address 192.168.253.1 255.255.255.0
  duplex auto
  speed auto
 
Параметр include позволяет выводить строки которые соответствуют определенным критериям. Т.е. можно вывести ту информацию которая полезна именно сейчас, отбросив все лишнее. Причем можно создать целую цепочку условий, при совпадении с которыми будет выводится строка
.      
R1#show interfaces | include FastEthernet|Hardware|Internet|errors|lost

FastEthernet0/0 is up, line protocol is up
   Hardware is Gt96k FE, address is c000.05dc.0000 (bia c000.05dc.0000)
   Internet address is 192.168.254.254/24
      0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
      0 output errors, 0 collisions, 0 interface resets
      0 lost carrier, 0 no carrier
FastEthernet0/1 is up, line protocol is up
   Hardware is Gt96k FE, address is c000.05dc.0001 (bia c000.05dc.0001)
   Internet address is 192.168.253.1/24
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 0 interface resets
     0 lost carrier, 0 no carrier

Единственное о чем не следует забывать, что в такой цепочке,  после "include " начинается выражение, и,  если используется более одного такого условия, то сразу после первого шаблона должен стоять "|". Пробел после и перед "|" будет расцениваться как часть регулярного выражения, и может привести к тому, что ожидаемые строки не будут показаны.

R1#show interfaces | include FastEthernet |Hardware|Internet|errors|lost
    Hardware is Gt96k FE, address is c000.05dc.0000 (bia c000.05dc.0000)
   Internet address is 192.168.254.254/24
      0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
      0 output errors, 0 collisions, 0 interface resets
      0 lost carrier, 0 no carrier
   Hardware is Gt96k FE, address is c000.05dc.0001 (bia c000.05dc.0001)
   Internet address is 192.168.253.1/24
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 0 interface resets
     0 lost carrier, 0 no carrier
На подобие "include" можно пользоваться "+", но уже после того как началось отображение вывода команды. Т.е. вместо пробела или любой клавиши, выводящий следующий экран или следующую строку  соответственно, можно нажать "+", и написать условие фильтрации также как в предыдущем примере, и в итоге получить только то, что действительно интересует сейчас. Например вот так.

R1#show running-config
+interface | ip address
filtering...
interface FastEthernet0/0
  ip address 192.168.254.254 255.255.255.0
interface FastEthernet0/1
  ip address 192.168.253.1 255.255.255.0



Для поиска в пределах результирующего вывода команды можно пользоваться "/". После того будет выведен первый экран, нужно нажать "/",  и ввести условие для поиска. Если будет хоть одно вхождение искомого выражения, то будет отображен следующий экран вывода команды, начиная со строки содержащей это совпадение.
Если есть желание более детально познакомиться с  данной  темой, то можно посетить официальный сайт Cisco Systems, и порыться в документации  по CLI, а также изучить область применения регулярных выражений в рамках данной тематики.   

2 комментария:

Анонимный комментирует...

Полезные советы...
может среди советов есть такой или кто нибудь знает о хитрости, когда с помощью одной из команд (по-моему это resequence в access-list ах) можно вывести степени 2-ки - 2-4-8 и.т.д ? калькулятор и рутер в одном флаконе :)
на эмуляторе ссна конечно не пройдет, но на реальном девайсе может сгодиться

Unknown комментирует...

Просто нижайший поклон за статью=)
Пользовался include-ом, а вот про каскадирование запросов и section не знал - очень полезно, еще раз спасибо=)

Отправить комментарий