Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ を使用したファイル転送

概要 Junos PyEZを使用して、ローカルホストとJunosデバイス間の安全なコピー(SCP)ファイルを使用します。

Junos PyEZは、Junosデバイス上でファイル管理タスクを実行するためのユーティリティを提供します。Junos PyEZ jnpr.junos.utils.scp.SCP クラスを使用して、ローカルホストとJunosデバイス間の安全なコピー(SCP)ファイルを作成できます。

メソッドとclose()メソッドはSCPopen()、デバイスとの接続を確立して終了します。その結果、クライアント アプリケーションがファイル コピー操作のみを実行する場合は、メソッドDeviceopen()close()メソッドの呼び出しを省略できます。クラスのインスタンスはSCP、と のメソッドを自動的に呼び出すopen()close()コンテキストマネージャーとして使用できます。例えば:

SCP では、 パラメーターを使用して progress 転送の進行状況を追跡できます。既定では、 SCP 進行状況メッセージは出力されません。転送完了間隔が 10% 以上の場合に既定の進行状況メッセージを出力するように設定 progress=True します。

または、進行状況メッセージを出力するカスタム関数を定義し、関数の名前と同じパラメーターを設定する progress こともできます。関数定義には、デバイス インスタンスと進行状況メッセージに対応する 2 つのパラメーターを含める必要があります。例えば:

以下のサンプル・プログラムは、 scp-test1.txt ファイルと scp-test2.txt ・ファイルをローカル・ホストからターゲット・デバイス上の /var/tmp ディレクトリーに転送してから、メッセージ・ログ・ファイルをターゲット・デバイスからローカル・ホスト上の logs ディレクトリーに転送します。メッセージログの名前が変更され、デバイスのホスト名がファイル名に追加されます。この例では、ローカルホストとデバイスですでに設定されているSSHキーを認証に使用します。

比較のために、プログラムはデフォルトの進行状況メッセージと、 という名前の log関数で定義されているカスタム メッセージの両方を使用して、転送の進行状況を追跡します。

転送の進行状況は標準出力に送られます。デフォルトの出力(progress=True)には、デバイス名、転送中のファイル、および転送の進行状況がバイト単位とパーセンテージで含まれています。

この場合、カスタム関数は同様の出力を生成します。

プログラム実行後、ターゲットデバイスで コマンドを発行 file list して、 scp-test1.txt ファイルと scp-test2.txt ファイルが正しいディレクトリにコピーされたことを確認します。

ローカルホストでは、デバイスホスト名を含むように名前が変更された メッセージ ログファイルが logs ディレクトリに存在する必要があります。

デフォルトでは、Junos PyEZ はデフォルトの SSH 設定ファイル (~/.ssh/config) があればそれを照会します。ただし、デバイス インスタンスを作成するときに、引数リストに パラメーターDeviceを含めるssh_configことで、別の SSH 構成ファイルを指定できます。例えば:

さらに、引数リストに パラメーターDeviceを含めてssh_private_key_file認証用の特定の SSH プライベートキーファイルを定義すると、インスタンスはSCPファイル転送時に認証に同じキーファイルを使用します。

このクラスは SCP 、netcat をサポートする中間ホストを介してローカル ホストからターゲット デバイスにファイルを転送できるようにする ProxyCommand のサポートも提供します。これは、中間ホストを介してのみターゲットデバイスにログインできる場合に便利です。プロキシ コマンドを構成するには、SSH 構成ファイルに適切な情報を追加します。例えば: