>  기사  >  백엔드 개발  >  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는 pip를 사용하여 설치할 수 있습니다. 다음 명령을 사용하세요:

    pip install netmiko

    Netmiko의 SCP 기능을 사용하여 파일 전송

    Netmiko 라이브러리의 SCP 기능을 사용하면 로컬 컴퓨터에서 장치로, 그리고 장치에서도 파일을 전송할 수 있습니다. 장치에서 장치로 파일을 전송합니다. 아래에서는 Netmiko의 SCP 기능을 사용하여 파일을 전송하는 방법을 소개합니다.

    기기에서 로컬 컴퓨터로 파일 전송

    기기에서 로컬 컴퓨터로 파일을 전송하려면 Netmiko의 file_transfer 기능을 사용해야 합니다. 이 기능에는 원격 경로, 로컬 경로, 파일 이름 및 파일 전송 방향(원격 장치에서 로컬 컴퓨터로)의 네 가지 매개 변수가 필요합니다. 원격 경로와 로컬 경로는 상대 경로 또는 절대 경로일 수 있습니다. 파일 전송 방향은 get 문자열을 사용하여 지정해야 합니다. 다음은 Netmiko의 file_transfer 함수를 사용하여 파일을 전송하는 샘플 코드입니다. file_transfer函数。该函数需要四个参数:远程路径、本地路径、文件名和文件传输方向(从远程设备到本地计算机)。其中远程路径和本地路径可以是相对路径或绝对路径。文件传输方向需要使用字符串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函数。该函数需要四个参数:远程路径、本地路径、文件名和文件传输方向(从本地计算机到远程设备)。其中远程路径和本地路径可以是相对路径或绝对路径。文件传输方向需要使用字符串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函数连接设备。在连接设备之后,我们使用file_transfer函数传输文件。remote_file参数指定了远程设备上的文件路径,local_file参数指定了本地计算机上的文件路径,file_system参数指定了文件所在的文件系统,directionrrreee

    위 샘플 코드에서는 먼저 장치 사전을 정의한 후 ConnectHandler 함수를 사용하여 연결합니다. 장비. 기기를 연결한 후 file_transfer 기능을 사용하여 파일을 전송합니다. remote_file 매개변수는 원격 장치의 파일 경로를 지정하고, local_file 매개변수는 로컬 컴퓨터의 파일 경로를 지정하며, file_system 매개변수는 지정합니다. 파일 위치, direction 매개변수는 전송 방향을 지정합니다. 위 코드를 실행하여 장치에서 로컬 컴퓨터로 파일을 전송합니다. 🎜🎜로컬 컴퓨터에서 기기로 파일 전송🎜🎜로컬 컴퓨터에서 기기로 파일을 전송하려면 Netmiko의 file_transfer 기능도 사용해야 합니다. 이 기능에는 원격 경로, 로컬 경로, 파일 이름 및 파일 전송 방향(로컬 컴퓨터에서 원격 장치로)의 네 가지 매개 변수가 필요합니다. 원격 경로와 로컬 경로는 상대 경로 또는 절대 경로일 수 있습니다. 파일 전송 방향은 put 문자열을 사용하여 지정해야 합니다. 다음은 Netmiko의 file_transfer 함수를 사용하여 로컬 컴퓨터에서 장치로 파일을 전송하는 샘플 코드입니다. 🎜rrreee🎜위 샘플 코드에서는 먼저 장치 사전을 정의한 다음 ConnectHandler 장치를 연결하는 함수입니다. 기기를 연결한 후 file_transfer 기능을 사용하여 파일을 전송합니다. remote_file 매개변수는 원격 장치의 파일 경로를 지정하고, local_file 매개변수는 로컬 컴퓨터의 파일 경로를 지정하며, file_system 매개변수는 지정합니다. 파일 위치, direction 매개변수는 전송 방향을 지정합니다. 위 코드를 실행하여 로컬 컴퓨터에서 장치로 파일을 전송합니다. 🎜

    위 내용은 Python에서 파일 전송에 Netmiko를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제