操作コマンド出力のフィルタリング
パイプ 記号を使用すると、ネットワーク管理者は、運用モードと設定モードの両方でコマンド出力をフィルタリングできます。|
パイプ ( | ) の使用についてコマンド出力をフィルタリングするシンボル
コマンドを入力するときにパイプ( )記号を追加することで、コマンド出力をフィルタリングできます。|
例:
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
次の例は、パイプ記号 (|) で使用できるフィルターの一覧です。
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
コマンドの場合 のみ、パイプ記号と疑問符を組み合わせて、追加の比較フィルターを表示できます。show configuration
user@host> show configuration | ?
Possible completions:
compare Compare configuration changes with prior version
...
任意のパイプ フィルターを組み合わせて入力できます。たとえば、以下のように表示されます。
user@host>command | match regular-expression | save filename
このトピックでは、操作モード・コマンド出力に使用できるフィルターについてのみ説明します。
例:パイプ (|) で正規表現を使用するコマンド出力をフィルタリングするシンボル
、 、および フィルターをパイプ記号と共に使用して、正規表現を使用して出力をフィルタリングします。except
find
match
ジュニパーネットワークスは、POSIX 1003.2 に定義されている正規表現を使用します。正規表現にスペース、演算子、またはワイルドカード文字が含まれる場合は、表現を引用符で囲みます。
オペレータ |
機能 |
---|---|
|
パイプの両側にある2つの用語のいずれかに一致する可能性があることを示します。 |
|
式の先頭で使用され、一致を開始させる場所を示します。 |
|
式の末尾で使用し、$文字まで正確に一致させる必要があることを示します。 |
|
一致させる文字または数字の範囲を指定します。範囲の開始と終了を区切るには、ハイフン () を使用します。 |
|
一致させる語句のグループを指定します。 |
たとえば、コマンドが次の出力を生成するとします。
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
の パイプ フィルターは、次の出力を表示します。| match "FPC-1"
FPC 1 BUILTIN BUILTIN MPC BUILTIN
の パイプ フィルターは、次の出力を表示します。| 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
例:パイプ ( | )コマンド ライン インターフェイスのフィルター関数
このトピックでは、CLI がサポートするパイプ ( | ) フィルター関数 について説明し、例を示します。Junos OS
- 設定例とテキストの違い
- XML での構成とその相違点の例
- 出力行数のカウント例
- XMLタグ形式で表示される出力例
- 静的設定データの表示例
- 一時的な設定データを表示する例
- JSON 形式で出力を表示する例
- YANG変換スクリプトを適用した状態での設定表示例
- コマンドの RPC タグを表示する例
- 正規表現に一致しない出力を無視する例
- 正規表現の最初の一致からの出力を表示する例
- 最後の画面の後に出力を保持する例
- 最後のエントリから始まる出力を表示する例
- 正規表現に一致する出力を表示する例
- 出力がページ分割されないようにする例
- コマンド出力を他のユーザーに送信する例
- IP アドレスの解決例
- 出力をファイルに保存する例
- ファイルへの出力の追加例
- 画面に出力を表示し、ファイルに書き込む例
- 開始列を指定して出力をトリミングする例
- コマンドの出力をリフレッシュする例
設定例とテキストの違い
フィルターは 候補コンフィギュレーションを、現在のコミットされたコンフィギュレーションまたはコンフィギュレーション・ファイルのいずれかと比較します。compare
また、2 つの設定の違いをテキスト文字で表示します。
構成ファイルを比較するには、次のようにパイプ (|) 記号の後に入力します 。compare
show | compare [rollback n | filename]
変数は、以前にコミットされたコンフィギュレーションのリストへのインデックスです。rollback
n 最後に保存された設定は 0 です。引数を指定しない場合、候補コンフィギュレーションがアクティブなコンフィギュレーション・ファイル()と比較されます。これはインデックス 0 で の比較と同じです。/config/juniper.confrollback
設定ファイルへのフルパス(またはURL)はです 。filename
比較出力では、次の規則を使用します。
-
候補コンフィギュレーションのみに含まれるステートメントには、先頭にプラス記号(+)が付きます。
-
比較ファイルのみに含まれるステートメントには、先頭にマイナス記号 (–) が付きます。
-
変更されないステートメントには、1 つのブランク・スペース () が接頭部として付きます。
例:
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;
+ }
設定変更をより正確に反映するために、 コマンドからの出力を強化しました。show | compare
この機能強化には、リスト内の注文変更のよりインテリジェントな処理が含まれます。たとえば、次のように並べ替えられたグループ名について考えてみます。
groups { groups { group_xmp; group_xmp; group_cmp; group_grp: group_grp; group_cmp; } }
初期のリリースでは、コマンドからの 出力は次のようになります。show | compare
[edit groups] - group_xmp; - group_cmp; - group_grp; + group_xmp; + group_grp; + group_cmp;
これで、コマンドからの 出力は次のようになります。show | compare
[edit groups] group_xmp {...} ! group_grp {...}
XML での構成とその相違点の例
compare | display xml
フィルターは候補コンフィギュレーションを現在のコミットされたコンフィギュレーションと比較し、XMLでその2つのコンフィギュレーションの差異を表示します。コンフィギュレーションを比較するには、運用モードまたはコンフィギュレーション・モードで、パイプ(|)記号の 後にを入力します 。compare | display xml
運用モードでの例
user@host> show configuration | compare | display xml
コンフィギュレーションモードでの例
[edit]
user@host# show | compare | display xml
コマンドを使用する 前に、特定の設定階層を入力することができます。| compare
コンフィギュレーションモードでは、コマンドが適用される階層に移動できます。
出力行数のカウント例
コマンド出力の行数をカウントするには、パイプ記号( | )の後に を入力します 。count
たとえば、以下のように表示されます。
user@host> show configuration | count
Count: 269 lines
XMLタグ形式で表示される出力例
コマンド出力を XML タグ形式で表示するには、パイプ記号( | )の後に入力します 。display xml
以下の例では、コマンド出力を 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>
設定データまたはコマンド出力に 7 ビット ASCII 文字セット外の文字が含まれている場合、CLI は XML 出力でそれらの文字に相当する UTF-8 10 進文字参照を表示します。
静的設定データの表示例
継承された設定データと、静的設定データベースに関して、設定が継承された送信元グループに関する情報を表示できます。このデータを表示するには、 コマンドを実行します 。show configuration | display inheritance
user@host> show configuration | display inheritance
## Last commit: 2018-03-29 15:54:17 PDT
version 16.2R2;
system {
...
}
一時的な設定データを表示する例
Juniper Extension Toolkit(JET)アプリケーション、ネットワーク設定プロトコル(NETCONF)、Junos XMLプロトコルのクライアントアプリケーションは、一時的な設定データベースを設定できます。エフェメラル データベースは、構成の更新を実行するための高速なプログラム インターフェイスを提供する代替構成データベースです。
エフェメラルデータベースのすべてのインスタンスの構成データとマージされた完全な継承後の構成を表示するには、 コマンドを使用します 。show ephemeral-configuration merge
user@host> show ephemeral-configuration merge
## Last changed: 2019-02-01 09:47:20 PST
version 18.2R1;
system {
...
}
JSON 形式で出力を表示する例
パイプ記号(|)の後に を入力する と、設定またはコマンド出力を JavaScript Object Notation(JSON)形式で表示できます。display json
以下の例では、コマンド出力を JSON 形式で表示しています。show cli directory
user@host> show cli directory | display json
{
"cli" : [
{
"working-directory" : [
{
"data" : "/var/home/username"
}
]
}
]
}
操作コマンドの出力に 7 ビット ASCII 文字セットの範囲外の文字が含まれている場合、CLI は JSON 出力でそれらの文字に相当する UTF-8 10 進文字参照を表示します。
YANG変換スクリプトを適用した状態での設定表示例
を実行する デバイスにYANGモジュールをロードして、ネイティブにサポートしていないデータモデル で構成階層を拡張できます。これらのモデルの変換はサポートされています。 .Junos OSJunos OSJunos OS アクティブ・コンフィギュレーションと候補コンフィギュレーションには、非ネイティブのYANGデータ・モデルの設定データが、そのモデルで定義された構文で含まれています。これらの設定では、対応する変換 されたシンタックスは明示的に表示されず、一時的な変更としてコミットされます。Junos OS
フィルターは 、すべての有効な変換スクリプトからの変換された設定データが出力に明示的に含まれている状態で、完全な継承後の設定を表示します。| display translation-scripts
すべての有効なYANG変換スクリプトが適用された設定を表示するには、動作モードの コマンドまたは設定モードの コマンドにフィルタを追加します。| display translation-scripts
show configuration
show
たとえば、以下のように表示されます。
user@host> show configuration | display translation-scripts
変換後に非ネイティブの設定データのみを表示するには、運用モードまたは設定モードでフィルターを使用します 。| display translation-scripts translated-config
user@host> show configuration | display translation-scripts translated-config
設定モードでは、変換スクリプトの適用前または適用後の非ネイティブ YANG データ モデルに対応する階層の設定差異のみを表示できます。これらの違いを表示するには、 または キーワードをそれぞれコマンドに追加します 。configured-delta
translated-delta
show | display translation-scripts
どちらの場合も、XML 出力には削除された設定データが表示され、その後に新しい設定データが表示されます。
user@host# show | display-translation-scripts (configured-delta | translated-delta)
次の例は、変換スクリプトを適用した場合と適用しない場合の設定例を示しています。コマンドは 、YANG データ モデルが定義する構文に非ネイティブ コンフィギュレーション データを含むコンフィギュレーションを表示します。show
フィルターは 、YANG データ モデルで定義された構文と変換された 構文の両方で、非ネイティブの設定データを表示します。| display translation-scripts
Junos OS どちらのコマンドも設定全体を表示しますが、この例では簡潔にするために省略しています。ただし、コマンドは継承前のコンフィギュレーションを返し、コマンドは継承後のコンフィギュレーションを返します。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;
}
}
}
}
...
コマンドの RPC タグを表示する例
操作モード コマンドのリモート プロシージャ コール(RPC)XML タグを表示するには、パイプ記号( | )の後に入力します。display xml rpc
次に、コマンドの RPC タグを表示する例を示します。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>
正規表現に一致しない出力を無視する例
正規表現に一致するテキストを無視するには、パイプ記号( | )の後に コマンドを指定します 。except
正規表現にスペース、オペレーターまたはワイルドカード文字が含まれる場合は引用符で囲みます。
次の例では、 ユーザー を除く、ルーターにログインしているすべてのユーザーを表示します。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
正規表現の最初の一致からの出力を表示する例
正規表現に一致するテキストが最初に出現した位置から始まる出力を表示するには、パイプ記号( | )の後に を入力します 。find
正規表現にスペース、オペレーターまたはワイルドカード文字が含まれる場合は引用符で囲みます。
次に、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
以下の例では、転送テーブルの最初の CCC エントリを表示します。
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
最後の画面の後に出力を保持する例
出力の最後の画面を表示した後、すぐに CLI プロンプトに戻るのではなく、そのままにしておくことで、出力を保持したままスクロールまたは検索できます。出力を保持するには、パイプ記号 ( | ) の後に入力します 。hold
以下の例では、 コマンドの出力 の最後の画面を表示した後に CLI プロンプトに戻らないようにしています。show
log log-file-1
user@host> show log log-file-1 | hold
最後のエントリから始まる出力を表示する例
ファイルの末尾に最新のエントリが含まれているログ ファイルを表示できます。出力の末尾から始まるテキストを表示するには、パイプ記号( | )の後に入力します 。last <
lines
>
次の例では、ファイル内の最後のエントリを表示します。 log-file-1
user@host> show log log-file-1 | last
要求された行数が、画面長設定で表示が許可されている行数より少ない場合、システムはサブセットを戻します。システムは、画面の長さの設定で許可されている数の行を返します。つまり、画面の長さが 20 行に設定されていて、最後の 10 行のみを要求した場合、システムは最後の 10 行ではなく最後の 19 行を返します。
正規表現に一致する出力を表示する例
正規表現に一致する出力を表示するには、パイプ記号( | )の後に を入力します 。match
regular-expression
正規表現にスペース、オペレーターまたはワイルドカード文字が含まれる場合は引用符で囲みます。
次の例は、設定内のすべての非同期転送モード(ATM)インターフェイスに一致します。
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 {
出力がページ分割されないようにする例
デフォルトでは、出力が端末画面の長さよりも長い場合、残りの出力を表示するメッセージを受け取ります 。---(more)---
残りの出力を表示するには、Space キーを押します。
出力にページ番号が付けられないようにするには、パイプ記号( | )の後に入力します 。no-more
以下の例では、 コマンドの出力を一度に表示します。 show configuration
user@host> show configuration | no-more
この機能は、出力全体をコピーして電子メールメッセージに貼り付ける場合に便利です。
コマンド出力を他のユーザーに送信する例
ルーターにログインしている特定のユーザーの端末、またはルーターにログインしているすべてのユーザーの端末にコマンド出力を表示するには、パイプ記号(|)の後に入力します。request
message (all | user
account
@
terminal
)
ルーターのトラブルシューティングを行い、カスタマーサービス担当者と電話で会話している場合は、 コマンド出力を共有できます。コマンドを使用して、端末で現在表示しているコマンド出力を代表に送信します。request message
以下の例は、 端末に入力したコマンドからの出力をユーザーの 端末に送信します。show interfaces
root@ttyp1
user@host> show interfaces | request message user root@ttyp1
ユーザーに は、端末画面に次の出力が表示されます。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...
IP アドレスの解決例
動作モードでのみ、 コマンドの出力に未解決のIPアドレスが表示された場合、 コマンドの後に を入力して 、IPアドレスに関連づけられた名前を表示することができます。| resolve
このフィルターを使用すると 、システムは IP アドレスの DNS 逆引き参照を実行できます。resolve
DNS が有効になっていない場合、ルックアップは失敗し、置換は実行されません。
未解決の IP アドレスの DNS 逆引き参照を実行するには、パイプ記号 (|) の後に入力します 。resolve <full-names>
オプションを指定し ない場合、IP アドレスに適用されるフィールド幅の制限に合わせて名前が切り捨てられます。full-names
以下の例では、 コマンドの出力 に含まれる未解決の IP アドレスに対して DNS ルックアップを実行します。show ospf neighbors
user@host> show ospf neighbors | resolve
出力をファイルに保存する例
コマンド出力が長い場合、出力を保存または分析する必要がある場合、または出力を電子メール メッセージまたは FTP で送信する必要がある場合は、出力をファイルに保存できます。デフォルトでは、ファイルはルーターのホームディレクトリに配置されます。
コマンド出力をファイルに保存するには、パイプ記号( | )の後に入力します。save
filename
次の例では、コマンドからの出力を 次の名前のファイルに保存します 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’
ファイルへの出力の追加例
コマンド出力が表示された場合は、出力をファイルに保存するか、そのファイルの既存の内容を上書きするか、出力テキストを特定のファイルに追加することができます。
コマンド出力をファイルに追加するには、パイプ記号( | )の後に入力します 。append filename
次の例では、コマンドの出力 を次の名前のファイルに追加します。 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'
画面に出力を表示し、ファイルに書き込む例
コマンド出力が表示された場合は、その出力をファイルに書き込むこともできます。出力の表示とファイルへの書き込みの両方を行うには、パイプ記号 (|) の後に入力します 。tee filename
次に、 コマンドからの 出力を表示し(デバイス上のギガビット イーサネット インターフェイスのステータスに関する情報を表示)、出力を という ファイルに迂回させる例を示します。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
UNIX コマンドとは異なり、ファイルを開くことができない場合は、エラー メッセージのみが表示されます (出力とエラー メッセージを表示する代わりに)。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>
開始列を指定して出力をトリミングする例
出力は、行と列の観点から端末画面に表示されます。画面の左側から始まる最初の英数字は列 1 にあり、2 番目の文字は列 2 にあります。特定の列から出力を表示する (したがって、出力の左端をトリミングする) には、パイプ記号 ( | ) の後に入力します 。trim columns
この フィルタは、システムログメッセージの先頭からの日付と時刻をトリミングするのに便利です。trim
次の例では、コマンドの出力 を表示し、最初の 10 列をフィルターで除外します。show system storage
user@host> show system storage | trim 11
コマンドは 負の値を受け付けません。trim
コマンドの出力をリフレッシュする例
パイプオプションを指定して 操作モードコマンドを実行し、画面に表示される出力を定期的にリフレッシュすることができます。| refresh
既定の更新は 1 秒ごとに行われます。ただし、1 秒から 604,800 秒までのリフレッシュ間隔を明示的に指定することもできます。たとえば、コマンドの出力 を 5 秒ごとに更新するには、次のコマンドを実行します。show interfaces
user@host> show interfaces | refresh 5
QFabricシステムでの操作モードコマンド出力のフィルター
QFabric システムで 運用モード コマンドを発行すると、システムに含まれるコンポーネントの数が多いため、生成される出力はかなり広範囲になる可能性があります。出力にアクセスしやすくするために、ほとんどのコマンドの最後に オプションを追加すること で、出力をフィルタリングできます。| filter
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer をご利用ください。
show ephemeral-configuration | display merge
Junos OS リリース 18.2R1 以降、このオプションは 非推奨です。display merge
set system export-format state-data json compact
このコマンドは、XML 形式をコンパクトな JSON 形式に変換します。それ以外の場合は、非コンパクト形式でJSONを出力します。show | compare | display xml
<configuration>
show | compare | display xml
<configuration>
display json
show | compare
これには、リストの順序変更のよりインテリジェントな処理が含まれます。