여러 컴퓨터에 큰 다운로드를 배포하려면 어떻게합니까?


38

큰 파일 (1GB)을 다운로드해야합니다. 또한 Linux를 실행하는 여러 컴퓨터에 액세스 할 수 있지만 관리자 정책에 따라 각각 50kB / s 다운로드 속도로 제한됩니다.

이 파일 다운로드를 여러 컴퓨터에 배포하고 모든 세그먼트를 다운로드 한 후 병합하여 어떻게 더 빨리받을 수 있습니까?


7
집에서 다운로드하고 USB 썸 드라이브를 통해 스니커 넷에 넣습니까?
WernerCD

2
나는 대학에있을 때 오래된 태양 b & w 방송국과 같은 것들을 기억합니다. 모든 내용을 저장하기에 충분한 공간이 있는지 확인하십시오. 실험실의 모든 컴퓨터 (full tmp)를 차단 한 후 친구 중 한 명이 추방되었습니다.
Kartoch

다운로드 제한이없는 경우 상대방이 파일을 얼마나 빨리 보낼 수 있습니까? LAN상의 컴퓨터간에 전송 제한이 있습니까?
Sun

@SunWKim 아니요. 특별한 제한은 없습니다.
Meysam

답변:


60

공통 프로토콜 HTTP, FTP 및 SFTP는 범위 요청을 지원 하므로 파일의 일부를 요청할 수 있습니다. 여기에는 서버 지원도 필요하므로 실제로 작동하지 않을 수도 있습니다.

당신은 사용 curl하고, -r또는 --range옵션의 범위를 지정하고 결국 단지에 cat함께 파일을 팅. 예:

curl -r 0-104857600         -o distro1.iso 'http://files.cdn/distro.iso'
curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'
[…]

결국에는 개별 부품을 수집 할 때 다음과 같이 연결합니다.

cat distro* > distro.iso

다음 --head옵션을 사용 하여 파일 크기를 포함하여 파일에 대한 추가 정보를 얻을 수 있습니다 .

curl --head 'http://files.cdn/distro.iso'

열린 범위로 마지막 청크를 검색 할 수 있습니다.

curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso'

더 많은 옵션과 설명을 보려면 curl 매뉴얼 페이지 를 읽으십시오 .

ssh 및 tmux를 더욱 활용하여 여러 서버에서 다운로드를 쉽게 실행하고 추적 할 수 있습니다.


15
참고 : 셸 cat distro* > ...을 사용하여 *확장 한 파일 정렬을 확인하면 다음 distro1.iso distro10.iso distro11.iso ...과 같이 정렬 할 수 있으므로주의하여 잘못된 순서로 연결하십시오.
Sebastian

8
cat distro{1..10}.iso
@Sebastian

1
이 솔루션은 쉘 전용이며 이식성이 없습니다. cat $(seq -fdist%g.iso 1 10)더 예측 가능해야하지만에 실패합니다 csh. $(…)백틱으로 대체 하는 것은 대부분의 쉘에서 작동하는 것 같습니다.
마르코

3
@Marco seq는 휴대용 명령도 아닙니다. 당신은 사용할 수 있습니다 distro001.iso, distro002.iso...distroy010.iso
스테판 Chazelas가

관리자 정책, 전송 연결 당 50kB / s 또는 컴퓨터에서 허용되는 총 대역폭입니다. 전자 인 경우 다른 워크 스테이션에 로그인하지 않고 동일한 컴퓨터에서 답변을 활용할 수 있습니다.
일요일

0

1 기가 바이트 파일을 초당 50 킬로바이트로로드하는 데 약 5.5 시간이 소요됩니다.

부분적으로 얻기 위해 여러 대의 컴퓨터를 조정하면 시간이 절약 될 수 있습니다.

비트 토렌트를보고 피어 교환을 통한 전송과 함께 웹 시드를 활용할 수 있습니다. 각 클라이언트는 LAN을 통해 조각을 수신하고 완성 된 조각을 공유 할 수 있습니다. 각 컴퓨터에서 동일한 1GB 파일로 끝나지만 조각 병합은 자동으로 이루어집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.