Come usare regex in Nexus per cercare questo o quello?


9

Così aggravante: non riesco a trovare una buona documentazione su come utilizzare il comando Nexus regex.

Quindi, se le mie interfacce sembrano così:

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 

Voglio eseguire qualcosa di simile a:

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

E l'output sarà simile a (se fosse su 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.

Risposte:


8

Puoi fare un show run | egrep interface.Vlan|ip.address. Raccoglie un po 'più di informazioni, ma dovrebbe fornire un output simile a quello che vedi in IOS. Penso che anche grep possa funzionare, ma ho usato egrep e ho ottenuto l'output corretto.


Questo funziona Quindi, egrep ha avuto luogo dello spettacolo X | inc? E il codice cerca "interfaccia" qualsiasi cosa "Vlan" O "ip" niente "indirizzo"? (senza virgolette)
Pseudocyber,

Credo di sì. Puoi accedere alla documentazione di egrep sul 7k qui: cisco.com/en/US/docs/switches/datacenter/sw/6_x/nx-os/…
Odeonevets,

5

Se stai solo cercando gli indirizzi IP delle interfacce Vlan, un modo migliore potrebbe essere: show ip int br | grep -i vlan

Nota: show ip int brin NXOS mostra solo interfacce di livello 3. Per vedere lo stato di tutte le interfacce utilizzareshow int br

AGGIORNARE:

per NXOS 4.0 (2) e precedenti: show run | grep -i face\ vlan|ip\ address

4.0 (3) e versioni successive: show run | grep ignore-case face\ vlan|ip\ address

inoltre \è come sfuggire allo spazio con regex. Link per il regex NXOS: http://www.cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/fundamentals/configuration/guide2/fun_3about_cli.html#wp1237003


Voglio anche avere informazioni sulle informazioni della sottorete, quindi è per questo che stavo provando a estrarlo dalla "corsa di spettacolo".
Pseudocyber,

Vedo. Quindi prova questo per dimensioni: show run | grep -i face\ vlan|ip\ address questo mostrerà anche tutte le righe nell'output che contengono "face vlan" o "indirizzo ip"
emynd

Richard, grazie, ma prendi una carota sotto la f dopo grep -i
Pseudocyber,

avrei dovuto guardare più in profondità, le mie scuse. Tale sintassi dovrebbe funzionare su NXOS 4.0 (2) e precedenti. Per 4.0 (3) e successivi sostituisci -icon ignore_casequi il link cisco.com/en/US/docs/switches/datacenter/sw/4_0/nx-os/…
emynd

Richard S, quindi sembra quello che ero in grado di fare in iOS con un | inc, ora ho bisogno di fare in NXOS con un | grep ignore-case blah blah blah. E gli spazi devono essere sfuggiti, come questo "\" senza virgolette? e posso ancora usare più | 's da usare come logici o?
Pseudocyber,

5

Una sintassi alternativa che coinvolge virgolette singole.

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

In NX-OS, l'analisi degli argomenti funziona in modo molto simile a bash.


3

La documentazione che ho visto dice che dovrebbe funzionare:

show run | inc interface_Vlan|ip_address

Anche se non sembra per me su un interruttore a lame 4k. Ho avuto successo con

sh run | inc interface.Vlan|ip.address

Questo non funziona su un 7K. 7K # sh run | inc interface_Vlan | indirizzo_ip 7K # sh run | inc interface_Vlan | indirizzo_ip - mette una carota sotto il p. Nessun risultato.
Pseudocyber,

Non ho Nexus su cui provarlo, ma potresti provare (interface.Vlan | ip.address). ^ Sotto la p suona come se interpretasse "| i" come una seconda pipe.
Dave Noonan,

@Pseudocyber: * caret :-)
Paul Gear

Secondo i documenti, e diversamente da IOS, "il carattere di sottolineatura viene trattato solo come un'espressione regolare per i comandi relativi a BPG"
belacqua,

0

La risposta semplice è che, per un mapping uno-a-uno da IOS a NX-OS, è simile al seguente:

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

Nota che questo ha più senso quando tralasci le parentesi extra nell'originale:

show run | inc (interface Vlan|ip address)

La chiave in questo esempio è che per NX-OS, le parentesi sono sostituite da virgolette.

Puoi anche usare virgolette doppie, ad es "" .

NX-OS è basato su Linux [1] e utilizza un motore di espressione regolare simile a * nix. I comandi sono dispari tra formulazione inglese e idiomi regex standard.

Ad esempio, ciò che sarebbe egrep -vin bash sarebbe simile egrep ignore-case
Sulla riga di comando questo sarebbe simile

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

Un esempio della verbosità (e della forza) delle nuove funzionalità regex:
show run | egrep ignore-case vpc | egrep invert-match ignore-case peer

Ciò equivarrebbe a una bash-shell egrep -i vpc <input> | egrep -vi peer

Tuttavia, qui c'è molta più potenza e flessibilità rispetto all'attuale IOS.

La documentazione di base di Cisco è disponibile qui *, ma la ?funzionalità della riga di comando fornisce rapidi promemoria:

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

Dovrai quindi cercare "divertente" (cos'altro?) Per trovare la Guida alla configurazione dei fondamenti (che contiene la sezione Espressione regolare nel capitolo Comprensione dell'interfaccia della riga di comando ).

Uovo di Pasqua? I numeri di capitolo sono in binario per questo documento.

Se si cammina attraverso la documentazione, troverete molto di più * nix-like strumenti da riga di comando, tra cui cut, tr, e sul 7K, sede alcune altre chicche.

Inoltre, non trascurare i modificatori preve nextper le corrispondenze "include".

Questo afferrerà le righe contenenti foo, nonché tre righe prima e due righe dopo per il contesto:
show run | inc foo prev 3 next 2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.