Nesta página
Filtragem da saída de comando operacional
O símbolo de pipe permite que você (o administrador de rede) filtra a saída de comando em modos operacionais e de configuração.|
Sobre o uso do tubo ( | ) Símbolo para filtrar a saída de comando
Você pode filtrar a saída de comando adicionando o símbolo do tubo quando entrar no comando.|
Exemplo:
user@host> show rip neighbor ?
Possible completions:
<[Enter]> Execute this command
<name> Name of RIP neighbor
instance Name of RIP instance
logical-system Name of logical system, or 'all'
| Pipe through a command
O exemplo a seguir lista os filtros que você pode usar com o símbolo do tubo ( | ):
user@host> show interfaces | ?
user@host> show interfaces | ?
Possible completions:
append Append output text to file
count Count occurrences
display Show additional kinds of information
except Show only text that does not match a pattern
find Search for first occurrence of pattern
hold Hold text without exiting the --More-- prompt
last Display end of output only
match Show only text that matches a pattern
no-more Don't paginate output
refresh Refresh a continuous display of the command
request Make system-level requests
resolve Resolve IP addresses
save Save output text to file
tee Write to standard output and file
trim Trim specified number of columns from start of line
Somente para o comando, você pode combinar o símbolo do tubo e o ponto de interrogação para exibir um filtro de comparação adicional:show configuration
user@host> show configuration | ?
Possible completions:
compare Compare configuration changes with prior version
...
Você pode inserir qualquer um dos filtros de tubo em combinação. Por exemplo:
user@host>command | match regular-expression | save filename
Este tópico descreve apenas os filtros que você pode usar para a saída de comando do modo operacional .
Exemplo: Use expressões regulares com o tubo ( | ) Símbolo para filtrar a saída de comando
Você usa o , e filtros com o símbolo do tubo para empregar expressões regulares para filtrar a saída.except
find
match
A Juniper Networks usa as expressões regulares conforme definido no POSIX 1003.2. Se uma expressão regular contém espaços, operadores ou caracteres curingas, coloquem a expressão entre aspas.
Operador |
Função |
---|---|
|
Indica que uma correspondência pode ser um dos dois termos em ambos os lados do tubo. |
|
Usado no início de uma expressão para denotar onde uma correspondência deve começar. |
|
Usado no final de uma expressão para denotar que um termo deve ser combinado exatamente até o ponto do personagem de $. |
|
Especifica uma variedade de letras ou dígitos para combinar. Para separar o início e o fim de um intervalo, use um hífen (). |
|
Especifica um grupo de termos a combinar. |
Por exemplo, se um comando produzir a seguinte saída:
user@host> show chassis hardware
Hardware inventory:
Item Version Part number Serial number Description
Chassis F0632 MX80
Midplane REV 09 711-031594 ZW0568 MX80
PEM 0 Rev 04 740-028288 VK09886 AC Power Entry Module
Routing Engine BUILTIN BUILTIN Routing Engine
TFEB 0 BUILTIN BUILTIN Forwarding Engine Processor
QXM 0 REV 06 711-028408 ZW4288 MPC QXM
FPC 0 BUILTIN BUILTIN MPC BUILTIN
MIC 0 BUILTIN BUILTIN 4x 10GE XFP
PIC 0 BUILTIN BUILTIN 4x 10GE XFP
Xcvr 0 REV 02 740-014289 C825XU010 XFP-10G-SR
Xcvr 1 REV 03 740-014289 CB25BQ0WD XFP-10G-SR
Xcvr 2 REV 01 740-011571 C739XJ039 XFP-10G-SR
FPC 1 BUILTIN BUILTIN MPC BUILTIN
MIC 1 *** Hardware Not Supported ***
Fan Tray Fan Tray
Um filtro de tubulação exibe a seguinte saída:| match "FPC-1"
FPC 1 BUILTIN BUILTIN MPC BUILTIN
Um filtro de tubulação exibe a seguinte saída:| except "FPC 1"
Hardware inventory:
Item Version Part number Serial number Description
Chassis F0632 MX80
PEM 0 Rev 04 740-028288 VK09886 AC Power Entry Module
Routing Engine BUILTIN BUILTIN Routing Engine
TFEB 0 BUILTIN BUILTIN Forwarding Engine Processor
FPC 0 BUILTIN BUILTIN MPC BUILTIN
Fan Tray Fan Tray
Exemplo: Pipe (| ) Funções de filtro na interface de linha de comando
Este tópico descreve e fornece exemplos das funções de filtro de tubo (|) que a CLI oferece suporte.Junos OS
- Exemplos de configurações e suas diferenças no texto
- Exemplos de configurações e suas diferenças no XML
- Exemplo de contagem do número de linhas de saída
- Exemplo de saída exibido no formato de tag XML
- Exemplo de exibição de dados de configuração estática
- Exemplo de exibição de dados de configuração efêmeros
- Exemplo de exibição de saída no formato JSON
- Exemplo de exibição da configuração com scripts de tradução YANG aplicados
- Exemplo de exibir as tags RPC para um comando
- Exemplo de ignorar saídas que não correspondem a uma expressão regular
- Exemplo de exibição de saída da primeira correspondência de uma expressão regular
- Exemplo de retenção de saída após a última tela
- Exemplo de exibição da saída começando com as últimas entradas
- Exemplo de exibição de saída que corresponde a uma expressão regular
- Exemplo de impedir que a saída seja paginada
- Exemplo de envio de saída de comando para outros usuários
- Exemplo de resolução de endereços IP
- Exemplo de economia de saída em um arquivo
- Exemplo de anexar saída a um arquivo
- Exemplo de exibição de saída na tela e escrita em um arquivo
- Exemplo de saída de corte especificando a coluna de partida
- Exemplo de renovar a saída de um comando
Exemplos de configurações e suas diferenças no texto
O filtro compara a configuração do candidato com a configuração comprometida atual ou um arquivo de configuração.compare
Ele também exibe as diferenças entre as duas configurações com caracteres de texto.
Para comparar arquivos de configuração, você digita após o símbolo do tubo (|), da seguinte forma:compare
show | compare [rollback n | filename]
A variável é o índice da lista de configurações previamente comprometidas.rollback
n A configuração mais recentemente salva é 0. Se você não especificar argumentos, a configuração do candidato é comparada com o arquivo de configuração ativo (), que é o mesmo que se comparar com o índice 0./config/juniper.confrollback
O caminho completo (ou URL) até um arquivo de configuração é .filename
A saída de comparação usa as seguintes convenções:
-
As declarações que estão na configuração do candidato são apenas prefixadas com um sinal plus (+).
-
As declarações que estão apenas no arquivo de comparação são prefixadas com um sinal negativo (-).
-
As declarações que não são alteradas são prefixadas com um único espaço em branco ().
Exemplo:
user@host> show configuration system | compare rollback 9
[edit system]
+ host-name device;
+ backup-router 192.168.71.254;
- ports {
- console log-out-on-disconnect;
- }
[edit system name-server]
+ 172.17.28.11;
172.17.28.101 { ... }
[edit system name-server]
172.17.28.101 { ... }
+ 172.17.28.100;
+ 172.17.28.10;
[edit system]
- scripts {
- commit {
- allow-transients;
- }
- }
+ services {
+ ftp;
+ rlogin;
+ rsh;
+ telnet;
+ }
Melhoramos a saída do comando para refletir com mais precisão as mudanças de configuração.show | compare
Esse aprimoramento inclui o manuseio mais inteligente de mudanças de pedidos nas listas. Por exemplo, considere os nomes de grupos que são reordenados da seguinte forma:
groups { groups { group_xmp; group_xmp; group_cmp; group_grp: group_grp; group_cmp; } }
Nas primeiras versões, a saída do comando parecia a seguinte:show | compare
[edit groups] - group_xmp; - group_cmp; - group_grp; + group_xmp; + group_grp; + group_cmp;
Agora, a saída do comando se parece com o seguinte:show | compare
[edit groups] group_xmp {...} ! group_grp {...}
Exemplos de configurações e suas diferenças no XML
O filtro compara a configuração do candidato com a configuração comprometida atual e exibe as diferenças entre as duas configurações no XML.compare | display xml
Para comparar configurações, você entra após o símbolo do tubo (|) no modo operacional ou de configuração.compare | display xml
Exemplo no modo operacional:
user@host> show configuration | compare | display xml
Exemplo no modo de configuração:
[edit]
user@host# show | compare | display xml
Você pode inserir uma hierarquia de configuração específica antes de usar o comando.| compare
No modo de configuração, você pode navegar até uma hierarquia onde o comando é aplicado.
Exemplo de contagem do número de linhas de saída
Para contar o número de linhas na saída de comando, insira após o símbolo do tubo ( |).count
Por exemplo:
user@host> show configuration | count
Count: 269 lines
Exemplo de saída exibido no formato de tag XML
Para exibir a saída de comando no formato de tag XML, você entra após o símbolo do tubo ( |).display xml
O exemplo a seguir exibe a saída de comando como tags XML:show cli directory
user@host> show cli directory | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/7.5I0/junos">
<cli>
<working-directory>/var/home/user</working-directory>
</cli>
<cli>
<banner></banner>
</cli>
</rpc-reply>
Se os dados de configuração ou a saída de comando contém caracteres que estão fora do conjunto de caracteres ASCII de 7 bits, a CLI exibe a referência de caractere decimais UTF-8 equivalente para esses caracteres na saída XML.
Exemplo de exibição de dados de configuração estática
Você pode visualizar os dados de configuração herdados e as informações sobre o grupo de origem do qual a configuração foi herdada em relação ao banco de dados de configuração estático. Para visualizar esses dados, você emite o comando.show configuration | display inheritance
user@host> show configuration | display inheritance
## Last commit: 2018-03-29 15:54:17 PDT
version 16.2R2;
system {
...
}
Exemplo de exibição de dados de configuração efêmeros
Os aplicativos Juniper Extension Toolkit (JET), Network Configuration Protocol (NETCONF) e Junos XML protocolam aplicativos de cliente podem configurar o banco de dados de configuração efêmero. O banco de dados efêmero é um banco de dados de configuração alternativo que fornece uma interface programática rápida para realizar atualizações de configuração.
Para ver a configuração pós-herança completa mesclada com os dados de configuração em todas as instâncias do banco de dados efêmero, use o comando.show ephemeral-configuration merge
user@host> show ephemeral-configuration merge
## Last changed: 2019-02-01 09:47:20 PST
version 18.2R1;
system {
...
}
Exemplo de exibição de saída no formato JSON
Você pode exibir a configuração ou a saída de comando no formato JavaScript Object Notation (JSON), entrando após o símbolo do tubo ( |).display json
O exemplo a seguir exibe a saída de comando no formato JSON:show cli directory
user@host> show cli directory | display json
{
"cli" : [
{
"working-directory" : [
{
"data" : "/var/home/username"
}
]
}
]
}
Se a saída de comando operacional contém caracteres que estão fora do conjunto de caracteres ASCII de 7 bits, a CLI exibe a referência de caracteres decimais UTF-8 equivalente para esses caracteres na saída JSON.
Exemplo de exibição da configuração com scripts de tradução YANG aplicados
Você pode carregar módulos YANG em dispositivos em execução para aumentar a hierarquia de configuração com modelos de dados que não oferecem suporte à tradução desses modelos nativamente .Junos OSJunos OSJunos OS As configurações ativas e as configurações do candidato contêm os dados de configuração para modelos de dados YANG não nativos na sintaxe definida por esse modelo. Essas configurações não exibem explicitamente a sintaxe traduzida correspondente, que é comprometida como uma mudança transitória.Junos OS
O filtro exibe a configuração pós-herança completa, com os dados de configuração traduzidos de todos os scripts de tradução habilitados explicitamente incluídos na saída.| display translation-scripts
Para exibir a configuração com todos os scripts de tradução YANG habilitados aplicados, aplicação do filtro ao comando no modo operacional ou ao comando no modo de configuração.| display translation-scripts
show configuration
show
Por exemplo:
user@host> show configuration | display translation-scripts
Para visualizar apenas os dados de configuração não nativos após a tradução, você usa o filtro no modo operacional ou no modo de configuração.| display translation-scripts translated-config
user@host> show configuration | display translation-scripts translated-config
No modo de configuração, você pode exibir apenas as diferenças de configuração nas hierarquias correspondentes aos modelos de dados YANG não nativos antes ou depois da aplicação dos scripts de tradução. Para exibir essas diferenças, você anexa a palavra-chave ou a palavra-chave, respectivamente, ao comando.configured-delta
translated-delta
show | display translation-scripts
Em ambos os casos, a saída XML exibe os dados de configuração excluídos, seguidos pelos novos dados de configuração.
user@host# show | display-translation-scripts (configured-delta | translated-delta)
O exemplo a seguir exibe uma configuração de amostra com e sem scripts de tradução aplicados. O comando exibe a configuração, que inclui os dados de configuração não nativos na sintaxe que o modelo de dados YANG define.show
O filtro exibe os dados de configuração não nativos tanto na sintaxe definida pelo modelo de dados YANG quanto na sintaxe traduzida .| display translation-scripts
Junos OS Ambos os comandos exibem toda a configuração, que foi truncada por brevidade neste exemplo. No entanto, o comando retorna a configuração de pré-inertitância, enquanto o comando retorna a configuração pós-herança.show
show | display translation-scripts
user@host# show
...
myint:intconfig {
interfaces {
interface ge-0/0/0 {
config {
description test;
}
}
}
}
...
user@host# show | display translation-scripts
...
interfaces {
ge-0/0/0 {
description test;
gigether-options {
no-flow-control;
}
}
}
...
myint:intconfig {
interfaces {
interface ge-0/0/0 {
config {
description test;
}
}
}
}
...
Exemplo de exibir as tags RPC para um comando
Para exibir as tags XML de chamada de procedimento remoto (RPC) para um comando de modo operacional, você entra após o símbolo do tubo ( |).display xml rpc
O exemplo a seguir exibe as tags RPC para o comando:show route
user@host> show route | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/10.1I0/junos">
<rpc>
<get-route-information>
</get-route-information>
</rpc>
<cli>
<banner></banner>
</cli>
</rpc-reply>
Exemplo de ignorar saídas que não correspondem a uma expressão regular
Para ignorar o texto que corresponda a uma expressão regular, especifique o comando após o símbolo do tubo (|).except
Se a expressão regular contém quaisquer espaços, operadores ou caracteres curingas, coloque-a entre aspas.
O exemplo a seguir exibe todos os usuários que estão conectados no roteador, exceto o usuário :root
user@host> show system users | except root
8:28PM up 1 day, 13:59, 2 users, load averages: 0.01, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE WHAT
user p0 device1.example.com 7:25PM - cli
Exemplo de exibição de saída da primeira correspondência de uma expressão regular
Para exibir a saída a partir da primeira ocorrência de texto que corresponda a uma expressão regular, você entra após o símbolo do pipe ( |).find
Se a expressão regular contém quaisquer espaços, operadores ou caracteres curingas, coloque-a entre aspas.
O exemplo a seguir exibe as rotas na tabela de roteamento a partir do endereço IP:208.197.169.0
user@host> show route | find 208.197.169.0
208.197.169.0/24 *[Static/5] 1d 13:22:11
> to 192.168.4.254 via so-3/0/0.0
224.0.0.5/32 *[OSPF/10] 1d 13:22:12, metric 1
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
47.0005.80ff.f800.0000.0108.0001.1921.6800.4015.00/160
*[Direct/0] 1d 13:22:12
> via lo0.0
O exemplo a seguir exibe a primeira entrada CCC na tabela de encaminhamento:
user@host> show route forwarding-table | find ccc
Routing table: ccc
MPLS:
Interface.Label Type RtRef Nexthop Type Index NhRef Netif
default perm 0 rjct 3 1
0 user 0 recv 5 2
1 user 0 recv 5 2
32769 user 0 ucst 45 1 fe-0/0/0.534
fe-0/0/0. (CCC) user 0 indr 44 2
10.0.16.2 Push 32768, Push
Exemplo de retenção de saída após a última tela
Você pode reter a saída e rolar ou pesquisar por ela segurando em vez de retornar imediatamente ao prompt CLI após visualizar a última tela de saída. Para reter a saída, você entra após o símbolo do tubo (|).hold
O exemplo a seguir impede o retorno ao prompt CLI depois de ter visto a última tela de saída do comando:show
log log-file-1
user@host> show log log-file-1 | hold
Exemplo de exibição da saída começando com as últimas entradas
Você pode visualizar arquivos de log em que o final do arquivo contém as entradas mais recentes. Para exibir texto a partir da extremidade da saída, você entra após o símbolo do tubo ( |).last <
lines
>
O exemplo a seguir exibe as últimas entradas noarquivo: log-file-1
user@host> show log log-file-1 | last
Quando o número de linhas solicitadas é menor do que o número de linhas que a configuração do comprimento da tela permite exibir, o sistema retorna um subconjunto. O sistema retorna tantas linhas quanto permitido pela configuração do comprimento da tela. Ou seja, se o comprimento da sua tela for definido para 20 linhas e você tiver solicitado apenas as últimas 10 linhas, o sistema retorna as últimas 19 linhas em vez das últimas 10 linhas.
Exemplo de exibição de saída que corresponde a uma expressão regular
Para exibir uma saída que corresponda a uma expressão regular, você entra após o símbolo do tubo (|).match
regular-expression
Se a expressão regular contém quaisquer espaços, operadores ou caracteres curingas, coloque-a entre aspas.
O exemplo a seguir corresponde a todas as interfaces de modo de transferência assíncronos (ATM) na configuração:
user@host> show configuration | match at-
at-2/1/0 {
at-2/1/1 {
at-2/2/0 {
at-5/2/0 {
at-5/3/0 {
Exemplo de impedir que a saída seja paginada
Por padrão, se a saída for mais longa do que o comprimento da tela terminal, você receberá uma mensagem para exibir a saída restante.---(more)---
Para exibir a saída restante, pressione o Space.
Para evitar que a saída seja paginada, você entra após o símbolo do tubo ( |).no-more
O exemplo a seguir exibe a saída do comando de uma só vez: show configuration
user@host> show configuration | no-more
Esse recurso é útil se você quiser copiar toda a saída e cole-a em uma mensagem de e-mail.
Exemplo de envio de saída de comando para outros usuários
Para exibir a saída de comando no terminal de um usuário específico conectado ao seu roteador ou nos terminais de todos os usuários conectados ao seu roteador, você entra após o símbolo de pipe ( |).request
message (all | user
account
@
terminal
)
Se você estiver solucionando problemas do seu roteador e conversando com um representante de atendimento ao cliente por telefone, você pode compartilhar a saída de comando. Você usa o comando para enviar ao seu representante a saída de comando que está visualizando no seu terminal.request message
O exemplo a seguir envia a saída do comando que você entra em seu terminal para o terminal do usuário :show interfaces
root@ttyp1
user@host> show interfaces | request message user root@ttyp1
O usuário vê a seguinte saída aparecer na tela terminal:root@ttyp1
Message from user@host on /dev/ttyp0 at 10:32 PST... Physical interface: dsc, Enabled, Physical link is Up Interface index: 5, SNMP ifIndex: 5 Type: Software-Pseudo, MTU: Unlimited...
Exemplo de resolução de endereços IP
Somente no modo operacional, se a saída de um comando exibir um endereço IP não resolvido, você pode entrar após o comando para exibir o nome associado ao endereço IP.| resolve
O filtro permite que o sistema realize uma pesquisa DNS reversa do endereço IP.resolve
Se o DNS não estiver habilitado, a busca falhará e nenhuma substituição será realizada.
Para realizar uma pesquisa de DNS reversa de um endereço IP não resolvido, você entra após o símbolo do pipe ( |).resolve <full-names>
Se você não especificar a opção , o nome é truncado para se adequar a quaisquer limitações de largura de campo aplicáveis ao endereço IP.full-names
O exemplo a seguir executa uma pesquisa de DNS em quaisquer endereços IP não resolvidos na saída do comando:show ospf neighbors
user@host> show ospf neighbors | resolve
Exemplo de economia de saída em um arquivo
Quando a saída de comando é longa, quando você precisa armazenar ou analisar a saída, ou quando precisar enviar a saída em uma mensagem de e-mail ou por FTP, você pode salvar a saída para um arquivo. Por padrão, o arquivo é colocado no seu diretório de casa no roteador.
Para salvar a saída de comando em um arquivo, você entra após o símbolo de pipe (|).save
filename
O exemplo a seguir salva a saída do comando para um arquivo chamado request support information
my-support-info.txt:
user@host> request support information | save my-support-info.txt
Wrote 1143 lines of output to ‘my-support-info.txt’
Exemplo de anexar saída a um arquivo
Quando a saída de comando é exibida, você pode salvar a saída para um arquivo, que substitui o conteúdo existente desse arquivo, ou pode anexar o texto de saída a um arquivo específico.
Para anexar a saída de comando ao arquivo, você digita após o símbolo de pipe (|).append filename
O exemplo a seguir anexa a saída do comando a um arquivo chamado request support information
my-support-info.txt:
user@host> request support information | append my-support-info.txt
Wrote 2247 lines of output to 'my-support-info.txt'
Exemplo de exibição de saída na tela e escrita em um arquivo
Quando a saída de comando é exibida, você também pode escrever a saída para um arquivo. Para exibir a saída e ecrevê-la em um arquivo, você insira após o símbolo de pipe (|).tee filename
O exemplo a seguir exibe a saída do comando (exibindo informações sobre o status das interfaces Ethernet Gigabit no dispositivo) e desvia a saída para um arquivo chamado :show interfaces ge-* terse
ge-interfaces.txt
user@host> show interfaces ge-* terse | tee ge-interfaces.txt
Interface Admin Link Proto Local Remote
ge-0/1/0 up down
ge-0/1/1 up up
ge-0/1/2 up down
ge-0/1/3 up up
Ao contrário do comando UNIX , apenas uma mensagem de erro é exibida se o arquivo não puder ser aberto (em vez de exibir a saída e, em seguida, a mensagem de erro).tee
user@host> show interfaces ge-* terse | tee /home/user/test.txt
error: tee failed: file /home/user/test.txt could not be opened
user@host>
Exemplo de saída de corte especificando a coluna de partida
A saída aparece na tela terminal em termos de linhas e colunas. O primeiro caractere alfanumérico que começa à esquerda da tela está na coluna 1, o segundo caractere está na coluna 2, e assim por diante. Para exibir a saída a partir de uma coluna específica (aparando assim a porção mais esquerda da saída), você entra após o símbolo do tubo ( |).trim columns
O filtro é útil para aparar a data e a hora desde o início das mensagens de log do sistema.trim
O exemplo a seguir exibe a saída do comando, filtrando as primeiras 10 colunas:show system storage
user@host> show system storage | trim 11
O comando não aceita valores negativos.trim
Exemplo de renovar a saída de um comando
Você pode executar um comando de modo operacional com a opção de pipe para atualizar a saída exibida na tela periodicamente.| refresh
A atualização padrão ocorre a cada segundo. No entanto, você também pode especificar explicitamente um intervalo de atualização de 1 a 604.800 segundos. Por exemplo, para atualizar a saída do comando a cada 5 segundos, você executa o seguinte comando:show interfaces
user@host> show interfaces | refresh 5
Filtrar a saída de comando do modo operacional em um sistema QFabric
Quando você emite um comando de modo operacional em um sistema QFabric, a saída gerada pode ser bastante extensa devido ao número de componentes contidos no sistema. Para tornar a saída mais acessível, você pode filtrar a saída anexando a opção ao final da maioria dos comandos.| filter
Tabela de histórico de alterações
A compatibillidadde com o recurso dependerá da platadorma e versão utilizada. Use o Feature Explorer para saber se o recurso é compatível com sua plataforma.
show ephemeral-configuration | display merge
A partir do Junos OS Release 18.2R1, a opção está preterida.display merge
set system export-format state-data json compact
Este comando converte o formato XML em formato JSON compacto. Além disso, ele emite o JSON em formato não compacto.show | compare | display xml
<configuration>
show | compare | display xml
<configuration>
display json
show | compare
Isso inclui o manuseio mais inteligente de mudanças de pedidos nas listas.