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) 파일을 보호할 수 있습니다.

SCP open()close() 메서드는 장치와의 연결을 설정하고 종료합니다. 따라서 클라이언트 응용 프로그램이 파일 복사 작업만 수행하는 경우 및 close() 메서드에 Device open() 대한 호출을 생략할 수 있습니다. 클래스의 인스턴스는 SCPclose() 메서드를 자동으로 호출하는 open() 컨텍스트 관리자로 사용할 수 있습니다. 예를 들어:

SCP 매개 변수를 사용하여 전송 진행 상황을 추적할 수 있습니다 progress . 기본적으로 진행 SCP 률 메시지를 인쇄하지 않습니다. 전송 완료 간격이 10% 이상인 기본 진행률 메시지를 인쇄하도록 설정합니다 progress=True .

또는 진행률 메시지를 인쇄하는 사용자 지정 함수를 정의한 다음 매개 변수를 함수 이름과 동일하게 설정할 progress 수 있습니다. 함수 정의에는 장치 인스턴스와 진행률 메시지에 해당하는 두 개의 매개 변수가 포함되어야 합니다. 예를 들어:

다음 샘플 프로그램은 로컬 호스트의 scp-test1.txtscp-test2.txt 파일을 대상 디바이스의 /var/tmp 디렉토리로 전송한 다음 대상 디바이스의 메시지 로그 파일을 로컬 호스트의 logs 디렉토리로 전송합니다. 파일 이름에 디바이스 호스트 이름이 추가되도록 메시지 로그의 이름이 바뀝니다. 이 예에서는 인증을 위해 로컬 호스트와 디바이스에 이미 구성된 SSH 키를 사용합니다.

비교를 위해 프로그램은 기본 진행 메시지와 사용자 지정 메시지를 모두 사용하며, 이는 라는 함수 log에 정의되어 있습니다.

전송 진행률은 표준 출력으로 전송됩니다. 기본 출력(progress=True)에는 장치 이름, 전송 중인 파일, 전송 진행률(바이트 및 백분율)이 포함됩니다.

이 경우 사용자 지정 함수는 유사한 출력을 생성합니다.

프로그램을 실행한 후 대상 장치에서 명령을 실행하여 file list scp-test1.txtscp-test2.txt 파일이 올바른 디렉터리에 복사되었는지 확인합니다.

로컬 호스트에서 디바이스 호스트 이름을 포함하도록 이름이 변경된 메시지 로그 파일이 logs 디렉토리에 있어야 합니다.

기본적으로 Junos PyEZ는 ~/.ssh/config에 있는 경우 기본 SSH 구성 파일을 쿼리합니다. 그러나 인수 목록에 매개 변수를 Device 포함하여 ssh_config 디바이스 인스턴스를 생성할 때 다른 SSH 구성 파일을 지정할 수 있습니다. 예를 들어:

또한 인수 목록에 파라미터 Devicessh_private_key_file 포함하여 인증을 SCP 위한 특정 SSH 프라이빗 키 파일을 정의하면 인스턴스는 파일을 전송할 때 동일한 키 파일을 인증에 사용합니다.

또한 이 SCP 클래스는 netcat을 지원하는 중간 호스트를 통해 로컬 호스트에서 대상 장치로 파일을 전송할 수 있는 ProxyCommand를 지원합니다. 이는 중간 호스트를 통해서만 대상 디바이스에 로그인할 수 있는 경우에 유용합니다. ProxyCommand를 구성하려면 SSH 구성 파일에 적절한 정보를 추가합니다. 예를 들어: