Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos デバイスで sysctl() 拡張機能を使用する

Junos OS と Junos OS Evolvedは*nix のようなオペレーティング システム上で実行され、カーネルのさまざまな状態やプロセス情報を取得できます。自動化スクリプトで拡張機能を呼び出して sysctl() 、シェルでコマンドを使用 sysctl してこれらの値を取得する方法と同様に、同じカーネル状態情報を取得できます。この関数は sysctl() 、シェルで コマンドに指定 sysctl したのと同じ変数名を受け取ります。変数名はMIBスタイルの名前で、点線のコンポーネントセットを使用します。Junos OS は FreeBSD をベースにしており、Junos OS Evolvedは Linux 上でネイティブに動作するため、sysctl 変数と変数名は OS ごとに異なります。

メモ:

シェルで コマンドを sysctl -a 実行すると、使用可能な状態のリスト全体と、関数の引数として指定できる対応する名前を sysctl() 確認できます。ただし、出力は広範囲に及ぶ可能性があります。

たとえば、Junos OS では、次のサンプル SLAX op スクリプトは sysctl 状態 kern.hostname と の値を取得して hw.product.model印刷します。

同様に、Junos OS Evolvedでは、次のサンプル SLAX op スクリプトは sysctl 状態 kernel.hostname および の値を取得して kernel.osrelease印刷します。

メモ:

Junos OS Evolved、戻り値の型は常に文字列 ("s") です。型引数を省略した場合、デフォルトは「s」になります。

Junos OSとJunos OS Evolvedは、基盤となるオペレーティングシステムが異 sysctl なるため、状態名が異なります。たとえば、Junos OS では、 、 のカーネル状態 hw.product.modelを取得できますが、Junos OS Evolvedは類似 sysctl した変数名を持っていません。この場合、RPCやその他の手段を使用して同じ情報を取得できます。

たとえば、以下の SLAX op スクリプトは RPC をget-software-information実行してJunos OS Evolvedでモデル名を取得します。これは Junos OS の値を返すsysctlhw.product.modelのと同じです。

スクリプトで関数を sysctl() 呼び出し、存在しない sysctl 変数名を指定すると、Junos OS はエラーを生成しませんが、Junos OS Evolvedエラーが生成 sysctl error: No such file or directory されます。

例えば、関数が junos OS で有効な sysctl 変数名であるが、Junos OS Evolved上の有効な sysctl 変数名ではない 、 の値hw.product.modelを要求するとしますsysctl()。Junos OS Evolvedを実行しているデバイスでスクリプトを実行すると、次の出力が出力されます。