Como usar regex no Nexus para pesquisar isso | ou aquilo?

9

Tão agravante - não consigo encontrar boa documentação sobre como usar o comando Nexus regex.

Portanto, se minhas interfaces forem assim:

interface Vlan224
  description MANAGEMENT
  no shutdown
  ip flow monitor netflow-monitor input  
  no ip redirects
  ip address 10.214.224.2/24
  ip ospf passive-interface
  ip router ospf 1 area 0.0.0.3
  ip pim sparse-mode
  hsrp version 2
  hsrp 224 
  preempt 
  priority 120
  ip 10.214.224.1 

Quero executar algo semelhante a:

show run | inc (interface Vlan)|(ip address)

E a saída parecida com (se isso estivesse no IOS):

interface Vlan10
ip address 10.1.10.1 255.255.255.0
interface Vlan 11
ip address 10.1.11.1 255.255.255.0
etc.
Pseudocélula
fonte

Respostas:

8

Você pode fazer um show run | egrep interface.Vlan|ip.address. Ele pega um pouco mais de informação, mas deve fornecer uma saída semelhante à que você vê no IOS. Acho que o grep pode funcionar também, mas usei o egrep e obtive a saída correta.

Odeonevets
fonte
Isso funciona. Então, o egrep aconteceu no show X | inc? E o código procura por "interface" qualquer coisa "Vlan" OU "ip" qualquer coisa "endereço"? (sem as aspas) #
30413 Pseudocyber
Eu acredito que sim. Você pode acessar a documentação para egrep na 7k aqui: cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/...
Odeonevets
5

Se você está apenas procurando os endereços IP das interfaces Vlan, uma maneira melhor pode ser: show ip int br | grep -i vlan

Nota: show ip int brno NXOS mostra apenas interfaces da camada 3. Para ver o status de todas as interfaces, useshow int br

ATUALIZAR:

para NXOS 4.0 (2) e versões anteriores: show run | grep -i face\ vlan|ip\ address

4.0 (3) ou superior: show run | grep ignore-case face\ vlan|ip\ address

também \é como escapar do espaço com regex. Link para o regex do NXOS: http://www.cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/fundamentals/configuration/guide2/fun_3about_cli.html#wp1237003

emynd
fonte
Também quero ter informações sobre as informações de sub-rede, por isso estava tentando retirá-las da "execução do show".
Pseudocyber
Eu vejo. Em seguida, tente este por tamanho: show run | grep -i face\ vlan|ip\ address isso também mostrará todas as linhas na saída que contêm "face vlan" ou "ip address"
emynd
Richard, obrigado, mas obter uma cenoura sob a f após grep -i
Pseudocyber
deveria ter parecido mais profundo, minhas desculpas. Essa sintaxe deve funcionar no NXOS 4.0 (2) e versões anteriores. Para 4.0 (3) e até substituir -icom ignore_caseaqui está o link cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/...
emynd
Richard S, parece o que eu costumava fazer no ios com um | inc, agora preciso fazer no NXOS com um | grep ignore-case blá blá blá. E os espaços precisam ser escapados, como este "\" sem aspas? e ainda posso usar vários | para usar como lógicos ou?
Pseudocyber
5

Uma sintaxe alternativa que envolve aspas simples.

# show run | inc 'interface Vlan|ip address'

No NX-OS, a análise de argumentos funciona muito como o bash.

James Harr
fonte
3

A documentação que eu vi diz que isso deve funcionar:

show run | inc interface_Vlan|ip_address

Embora não pareça para mim em um switch blade de 4k. Eu tive sucesso com

sh run | inc interface.Vlan|ip.address
Mike Marotta
fonte
Isso não funciona em um 7K. 7K # sh executado | inc interface_Vlan | endereço_ ip 7K # sh executado | inc interface_Vlan | ip_address - coloca uma cenoura embaixo da p. Nenhuma saída.
Pseudocyber
Não tenho o Nexus para experimentá-lo, mas você pode tentar (interface.Vlan | endereço IP). O ^ sob op parece que está interpretando o "| i" como um segundo canal.
Dave Noonan
@Pseudocyber: * caret :-)
Paul Gear
Por docs, e ao contrário do IOS, "o sublinhado é tratada apenas como uma expressão regular para comandos relacionados BPG"
Belacqua
0

A resposta fácil é que, para um mapeamento um a um do IOS para o NX-OS, é assim:

IOS : show run | inc (interface Vlan)|(ip address)
NX-OS : show run | inc 'interface Vlan|ip address'

Observe que isso faz mais sentido quando você deixa de fora as parênteses extras no original:

show run | inc (interface Vlan|ip address)

A chave neste exemplo é que, para o NX-OS, os parênteses são substituídos por aspas.

Você também pode usar aspas duplas, ou seja "" .

O NX-OS é baseado em Linux [1] e usa um mecanismo de expressão regular semelhante ao * nix. Os comandos são ímpares entre palavras em inglês e expressões regulares de expressões regulares.

Por exemplo, o que seria egrep -vno bash seria egrep ignore-case
Na linha de comando, seria algo como

show run | egrep ignore-case vpc
ou
show run | inc ignore-case vpc

Um exemplo da verbosidade (e força) do novo regex apresenta:
show run | egrep ignore-case vpc | egrep invert-match ignore-case peer

Isso seria equivalente a um bash-shell egrep -i vpc <input> | egrep -vi peer

No entanto, há consideravelmente mais poder e flexibilidade aqui do que no IOS atual.

A documentação básica da Cisco está aqui *, mas seu ?recurso de linha de comando fornece lembretes rápidos:

5k# show run | ?
  cut      Print selected parts of lines.
  diff     Show difference between current and previous invocation (creates temp files: remove them
           with 'diff-clean' command and dont use it on commands with big outputs, like 'show 
           tech'!) 
  egrep    Egrep - print lines matching a pattern
  grep     Grep - print lines matching a pattern
  head     Display first lines
  human    Output in human format
  last     Display last lines
  less     Filter for paging
  no-more  Turn-off pagination for command output
  section  Show lines that include the pattern as well as the subsequent lines that are more
           indented than matching line 
  sort     Stream Sorter
  tr       Translate, squeeze, and/or delete characters
  uniq     Discard all but one of successive identical lines
  vsh      The shell that understands cli command
  wc       Count words, lines, characters
  xml      Output in xml format (according to .xsd definitions)
  begin    Begin with the line that matches
  count    Count number of lines
  end      End with the line that matches
  exclude  Exclude lines that match
  include  Include lines that match

5k# show run | inc ?
  WORD         Search for the expression
  ignore-case  Ignore case difference when comparing strings
  line-exp     Print only lines where the match is a whole line

5k# show run | egrep ?
  WORD          Search for the expression
  count         Print a total count of matching lines only
  ignore-case   Ignore case difference when comparing strings
  invert-match  Print only lines that contain no matches for <expr>
  line-exp      Print only lines where the match is a whole line
  line-number   Print each match preceded by its line number
  next          Print <num> lines of context after every matching line
  prev          Print <num> lines of context before every matching line
  word-exp      Print only lines where the match is a complete word

Você desejará pesquisar "divertido" (o que mais?) Para encontrar o Guia de Configuração dos Fundamentos (que contém a seção Expressão Regular no capítulo Entendendo a Interface da Linha de Comandos ).

Ovos de pascoa? Os números dos capítulos estão em binário para este documento.

Se você andar através dos docs, você vai encontrar muito mais * nix-like ferramentas de linha de comando, incluindo cut, tre no 7K, sede algumas outras guloseimas.

Além disso, não ignore os modificadores preve nextpara correspondências 'include'.

Isso pega linhas contendo foo, bem como três linhas antes e duas linhas depois para o contexto:
show run | inc foo prev 3 next 2

belacqua
fonte