큰 파일 (1GB)을 다운로드해야합니다. 또한 Linux를 실행하는 여러 컴퓨터에 액세스 할 수 있지만 관리자 정책에 따라 각각 50kB / s 다운로드 속도로 제한됩니다.
이 파일 다운로드를 여러 컴퓨터에 배포하고 모든 세그먼트를 다운로드 한 후 병합하여 어떻게 더 빨리받을 수 있습니까?
큰 파일 (1GB)을 다운로드해야합니다. 또한 Linux를 실행하는 여러 컴퓨터에 액세스 할 수 있지만 관리자 정책에 따라 각각 50kB / s 다운로드 속도로 제한됩니다.
이 파일 다운로드를 여러 컴퓨터에 배포하고 모든 세그먼트를 다운로드 한 후 병합하여 어떻게 더 빨리받을 수 있습니까?
답변:
공통 프로토콜 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를 더욱 활용하여 여러 서버에서 다운로드를 쉽게 실행하고 추적 할 수 있습니다.
cat distro* > ...
을 사용하여 *
확장 한 파일 정렬을 확인하면 다음 distro1.iso distro10.iso distro11.iso ...
과 같이 정렬 할 수 있으므로주의하여 잘못된 순서로 연결하십시오.
cat distro{1..10}.iso
cat $(seq -fdist%g.iso 1 10)
더 예측 가능해야하지만에 실패합니다 csh
. $(…)
백틱으로 대체 하는 것은 대부분의 쉘에서 작동하는 것 같습니다.
seq
는 휴대용 명령도 아닙니다. 당신은 사용할 수 있습니다 distro001.iso
, distro002.iso
...distroy010.iso