#設定ファイルやイメージ ファイルなどの送信は、ネットワーク デバイス管理における一般的な操作です。 Netmiko は、さまざまなネットワーク デバイスと対話するために使用できる Python ライブラリであり、SCP (Secure Copy Protocol) 機能を含むファイル転送のためのいくつかの機能を提供します。
Netmiko は、さまざまなネットワーク デバイスの接続と管理に使用できる Paramiko の拡張 Python ライブラリです。 Netmiko を使用して、Cisco、Juniper、Arista、HP などのさまざまなネットワーク デバイスに接続できます。 Netmikoライブラリは、接続、コマンド送信、ファイル転送などの操作をより便利で使いやすくするための複数の機能を提供します。
#SCP は、SSH プロトコルを使用してファイルを転送する安全なファイル転送プロトコルです。 FTP や TFTP などの他のファイル転送プロトコルと比較して、SCP は暗号化された接続を使用して、より高いセキュリティを提供します。 SCP は、大きなファイルを転送する場合には効率が低くなりますが、小さなファイルを転送する場合には理想的な選択肢です。
Netmiko を使用する前に、まず Netmiko をインストールする必要があります。 Netmiko は pip を使用してインストールできます。次のコマンドを使用するだけです。
pip install netmiko
Netmiko ライブラリの SCP 関数を使用して、ローカル コンピュータからデバイス にアクセスでき、デバイスからローカル コンピュータにファイルを転送することもできます。ここではNetmikoのSCP機能を使ってファイルを転送する方法を紹介します。
デバイスからローカル コンピュータにファイルを転送するには、Netmiko の file_transfer
関数を使用する必要があります。この関数には、リモート パス、ローカル パス、ファイル名、ファイル転送方向 (リモート デバイスからローカル コンピュータへ) の 4 つのパラメータが必要です。リモート パスとローカル パスは、相対パスまたは絶対パスにすることができます。ファイル転送方向は、文字列 get
を使用して指定する必要があります。以下は、Netmiko の file_transfer
関数を使用してファイルを転送するためのサンプル コードです。
from netmiko import ConnectHandler device = { 'device_type': 'cisco_ios', 'ip': '192.168.1.1', 'username': 'username', 'password': 'password', } remote_path = 'flash:/config.txt' local_path = '/home/user/config.txt' file_name = 'config.txt' with ConnectHandler(**device) as ssh: ssh.file_transfer( remote_file=remote_path, local_file=local_path, file_system='flash:', direction='get' )
上記のサンプル コードでは、最初にデバイス ディクショナリを定義し、次に ConnectHandler
関数を使用して、デバイスを接続します。デバイスを接続した後、file_transfer
関数を使用してファイルを転送します。 remote_file
パラメータはリモート デバイス上のファイル パスを指定し、local_file
パラメータはローカル コンピュータ上のファイル パスを指定し、file_system
パラメータはファイル システムを指定します。ファイルは見つかります。direction
パラメータは送信方向を指定します。上記のコードを実行して、デバイスからローカル コンピューターにファイルを転送します。
ローカル コンピューターからデバイスへのファイルの転送には、Netmiko の file_transfer
関数を使用する必要もあります。この関数には、リモート パス、ローカル パス、ファイル名、ファイル転送方向 (ローカル コンピュータからリモート デバイスへ) の 4 つのパラメータが必要です。リモート パスとローカル パスは、相対パスまたは絶対パスにすることができます。ファイル転送方向は、文字列 put
を使用して指定する必要があります。以下は、Netmiko の file_transfer
関数を使用してローカル コンピューターからデバイスにファイルを転送するサンプル コードです。
from netmiko import ConnectHandler device = { 'device_type': 'cisco_ios', 'ip': '192.168.1.1', 'username': 'username', 'password': 'password', } remote_path = 'flash:/config.txt' local_path = '/home/user/config.txt' file_name = 'config.txt' with ConnectHandler(**device) as ssh: ssh.file_transfer( remote_file=remote_path, local_file=local_path, file_system='flash:', direction='put' )
上記のサンプル コードでは、最初にデバイス ディクショナリも定義します。次に ConnectHandler
Function を使用してデバイスを接続します。デバイスを接続した後、file_transfer
関数を使用してファイルを転送します。 remote_file
パラメータはリモート デバイス上のファイル パスを指定し、local_file
パラメータはローカル コンピュータ上のファイル パスを指定し、file_system
パラメータはファイル システムを指定します。ファイルは見つかります。direction
パラメータは送信方向を指定します。上記のコードを実行して、ローカル コンピューターからデバイスにファイルを転送します。
以上がPython でのファイル転送に Netmiko を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。