여러 동시 연결을 사용하여 SFTP 또는 http 등을 통해 하나의 대용량 파일을 다운로드하는 방법

여러 동시 연결을 사용하여 SFTP 또는 http 등을 통해 하나의 대용량 파일을 다운로드하는 방법

다중 동시 연결과 다중 네트워크 프로토콜(ftp, http 등)을 모두 지원하는 명령줄 도구가 있습니까?

실제적인 예는 다음과 같습니다.

현재 컴퓨터로 전송하려는 SSH 서버에 대용량 백업 파일이 있습니다. 파일 다운로드가 너무 오래 걸리기 때문에 여러 개의 동시 네트워크 연결을 사용하여 속도를 높이고 싶습니다. SSH 서버에 과부하가 걸리지 않았다고 가정합니다.

다운로드여러 파일/URL동시 연결을 사용하는 것은관련 없음이 질문에.

이 문제를 해결하기 위해 코드를 작성하고 싶지 않습니다.

답변1

그만큼lftp프로그램은 여러 네트워크 프로토콜과 동시 연결을 모두 처리할 수 있습니다.

프로토콜 지원:

Lftp는 다음 프로토콜을 지원합니다.

  • FTP
  • SFTP
  • http와 https
  • 비트토렌트

FTP 등에 대한 추가 정보여기.

병렬 다운로드:

<URI>2개의 동시 연결을 사용하여 위치한 단일 대용량 파일을 다운로드하려면 :

lftp -c "pget -c -n 2 <URI>"

첫 번째 -c옵션은 실행할 명령을 지정합니다. pget여러 병렬 연결을 사용하여 파일 전송을 설정합니다. 두 번째 -c옵션은 전송이 이전에 중단된 경우 전송을 계속하는 것을 의미합니다. 이 -n옵션은 사용할 최대 연결 수를 제한합니다.

온라인에서 명령 및 옵션에 대한 자세한 내용을 확인할 수 있습니다.매뉴얼 페이지.

경고:이는 전송 속도를 높일 수 있지만 네트워크와 서버에 과도한 부하를 줍니다. 속도 향상은 네트워크 및 서버 상태에 따라 달라집니다.

질문의 실제 예를 다루려면 다음을 수행하십시오.

lftp -c "pget -c -n 2 sftp://[email protected]/~/backups/large.tar.gz"

이 예에서는 2개의 동시 연결이 있는 SSH(sftp)를 통해 대용량 백업 파일을 다운로드합니다. 비밀번호가 없는 SSH 로그인 설정이 있다고 가정합니다.

참고: Lftp는 대화형 모드에서도 사용할 수 있습니다. 다른 ftp 명령과 유사합니다.

답변2

aria2다중 연결과 FTP, HTTP 및 SFTP(기타)를 지원합니다.

예를 들어:

aria2c -j ${num_concurrent} "${uri}"

속도를 높이기 위해 여러 개의 동시 네트워크 연결을 사용하고 싶습니다.

서버가 개별 연결을 제한하도록 구성되지 않은 한 여러 병렬 다운로드를 실행하면 아무런 이점이 없을 수 있습니다. 실제로 처리량에 부정적인 영향을 미칠 수 있습니다.

표준 도구(예: rsync, scp, curl) 를 사용하면일반적으로당신이 원하는 것을 줘.

연결 끊김/부분 전송이 문제인 경우 이와 같은 유틸리티가 도움이 될 수 있지만 rsync --partial도움이 될 수도 있습니다.

관련 정보