ホームページ  >  記事  >  バックエンド開発  >  Python でのファイル転送に Netmiko を使用する方法

Python でのファイル転送に Netmiko を使用する方法

王林
王林転載
2023-05-19 19:51:01931ブラウズ

    #設定ファイルやイメージ ファイルなどの送信は、ネットワーク デバイス管理における一般的な操作です。 Netmiko は、さまざまなネットワーク デバイスと対話するために使用できる Python ライブラリであり、SCP (Secure Copy Protocol) 機能を含むファイル転送のためのいくつかの機能を提供します。

    Netmiko の概要

    Netmiko は、さまざまなネットワーク デバイスの接続と管理に使用できる Paramiko の拡張 Python ライブラリです。 Netmiko を使用して、Cisco、Juniper、Arista、HP などのさまざまなネットワーク デバイスに接続できます。 Netmikoライブラリは、接続、コマンド送信、ファイル転送などの操作をより便利で使いやすくするための複数の機能を提供します。

    Python でのファイル転送に Netmiko を使用する方法

    #SCP は、SSH プロトコルを使用してファイルを転送する安全なファイル転送プロトコルです。 FTP や TFTP などの他のファイル転送プロトコルと比較して、SCP は暗号化された接続を使用して、より高いセキュリティを提供します。 SCP は、大きなファイルを転送する場合には効率が低くなりますが、小さなファイルを転送する場合には理想的な選択肢です。

    Netmiko のインストール

    Netmiko を使用する前に、まず Netmiko をインストールする必要があります。 Netmiko は pip を使用してインストールできます。次のコマンドを使用するだけです。

    pip install netmiko

    Netmiko の SCP 関数を使用してファイルを転送します

    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'
        )

    上記のサンプル コードでは、最初にデバイス ディクショナリも定義します。次に ConnectHandlerFunction を使用してデバイスを接続します。デバイスを接続した後、file_transfer 関数を使用してファイルを転送します。 remote_file パラメータはリモート デバイス上のファイル パスを指定し、local_file パラメータはローカル コンピュータ上のファイル パスを指定し、file_system パラメータはファイル システムを指定します。ファイルは見つかります。directionパラメータは送信方向を指定します。上記のコードを実行して、ローカル コンピューターからデバイスにファイルを転送します。

    以上がPython でのファイル転送に Netmiko を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。