cURL로 파일 다운로드 받기

CentOS 7에는 wget이 기본적으로 설치가 안되어 있지만 cURL은 설치가 되어있다. yum install wget으로 설치를 해서 사용해도 되지만 급할때 cURL로 파일을 다운로드 할 수 있기 때문에 방법을 알아 두는 편이 좋다.
방법은 간단하다

-O 옵션은 서버에서 던저주는 파일명을 그대로 다운로드 한다.
반면 -o 옵션은 직접 다운로드될 파일명을 지정할 수 있다.
더 자세한 옵션은 curl홈페이지를 참조하자.
Curl 사용법
curl 명령의 구문은 다음과 같습니다.
curl [options] [URL...]가장 간단한 형태로 옵션 없이 호출될 경우, Curl은 지정된 리소스를 표준 출력에 표시합니다.
예를 들어 example.com 홈페이지를 검색하려면 다음을 실행합니다.
curl example.com이 명령은 터미널 창에 example.com 홈페이지의 소스 코드를 인쇄합니다.
프로토콜을 지정하지 않은 경우, curl은 사용할 프로토콜을 추측하려고 시도하며, 이 프로토콜은 HTTP로 기본 설정됩니다.
출력을 파일에 저장
curl 명령의 결과를 저장하려면 -o 또는 -O 옵션을 사용합니다.
Lowercase -o는 미리 정의된 파일 이름을 사용하여 파일을 저장합니다. 아래 예에서는 vue-v2.6.10.js입니다.
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js대문자 -O는 파일을 원래 파일 이름으로 저장합니다.
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js여러 파일을 다운로드
여러 파일을 한 번에 다운로드하려면 여러 -O 옵션과 다운로드하려는 파일의 URL을 차례로 사용합니다.
다음 예에서는 Arch Linux 및 Debian ISO 파일을 다운로드합니다.
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \ -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso다운로드를 다시 시작
-C – 옵션을 사용하여 다운로드를 재개할 수 있습니다. 이 기능은 대용량 파일을 다운로드하는 동안 연결이 끊긴 경우 유용하며 처음부터 다운로드를 시작하는 대신 이전 파일을 계속할 수 있습니다.
예를 들어 다음 명령을 사용하여 Ubuntu 18.04 ISO 파일을 다운로드하는 경우입니다.
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso그리고 갑자기 연결이 끊기면 다음을 사용하여 다운로드를 재개할 수 있습니다.
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.isoURL의 HTTP 헤더를 가져오기
HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론 구분 키 값 쌍입니다. 헤더는 요청 또는 응답과 함께 클라이언트와 서버 간에 전달됩니다.
-I 옵션을 사용하여 지정된 리소스의 HTTP 헤더만 가져옵니다.
curl -I --http2 https://www.ubuntu.com/웹 사이트가 HTTP/2를 지원하는지 테스트
특정 URL이 새 HTTP/2 프로토콜을 지원하는지 확인하려면 -I와 함께 HTTP 헤더를 –http2 옵션과 함께 가져옵니다.
curl -I --http2 -s https://linuxize.com/ | grep HTTP-s 옵션은 curl을 무음(조용)으로 실행하고 진행률 미터와 오류 메시지를 숨깁니다.
원격 서버가 HTTP/2를 지원하는 경우, curl은 HTTP/2.0 200을 인쇄합니다.
HTTP/2 200그렇지 않으면 응답은 HTTP/1.1 200입니다.
HTTP/1.1 200 OKCurl버전 7.47.0 이상이 있는 경우 HTTP/2는 기본적으로 모든 HTTPS 연결에 대해 사용 가능하므로 –http2 옵션을 사용할 필요가 없습니다.
리디렉션을 따르기
기본적으로 컬은 HTTP 위치 머리글을 따르지 않습니다.
google.com의 non-ww 버전을 검색하려고 하면 페이지의 원본을 가져오는 대신 www 버전으로 리디렉션됩니다.
curl google.com-L 옵션은 컬이 최종 대상에 도달할 때까지 모든 리디렉션을 따르도록 지시합니다.
curl -L google.comUser-에이전트를 변경
경우에 따라 파일을 다운로드할 때 방문자 장치 및 브라우저에 따라 사용자 에이전트 컬을 차단하거나 다른 내용을 반환하도록 원격 서버를 설정할 수 있습니다.
이런 경우 다른 브라우저를 에뮬레이트하려면 -A 옵션을 사용합니다.
예를 들어 Firefox 60을 에뮬레이트하는 경우 다음을 사용합니다.
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/최대 전송 속도를 지정
–limit-rate 옵션을 사용하면 데이터 전송 속도를 제한할 수 있습니다.
값은 바이트, k 접미사로 킬로바이트, m 접미사로 메가바이트, g 접미사로 기가바이트로 표현할 수 있습니다.
다음 예제에서는 이동 바이너리를 다운로드하고 다운로드 속도를 1MB로 제한합니다.
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz이 옵션은 컬이 사용 가능한 모든 대역폭을 소비하는 것을 방지하는 데 유용합니다.
FTP를 통해 파일을 전송
curl로 보호된 FTP 서버에 액세스하려면 -u 옵션을 사용하고 아래 그림과 같이 사용자 이름과 암호를 지정합니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/로그인하면 사용자의 홈 디렉토리에 있는 모든 파일과 디렉터리가 나열됩니다.
다음 구문을 사용하여 FTP 서버에서 단일 파일을 다운로드할 수 있습니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz파일을 FTP 서버에 업로드하려면 업로드할 파일 이름 뒤에 -T를 사용합니다.
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/쿠키를 보내기
원격 리소스에 액세스하거나 문제를 디버깅하기 위해 특정 쿠키를 사용하여 HTTP 요청을 해야 하는 경우도 있습니다.
기본적으로 Curl이 있는 리소스를 요청할 때 쿠키는 전송되거나 저장되지 않습니다.
서버로 쿠키를 보내려면 -b 스위치 다음에 쿠키 또는 문자열이 들어 있는 파일 이름을 사용합니다.
예를 들어 Oracle Java JDK rpm 파일 jdk-10.0.2_192-x64_bin.rpm을 다운로드합니다. 값을 가진 oraclelicense라는 쿠키를 전달해야 합니다.
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm프록시를 사용
curl은 HTTP, HTTPS 및 SOCKS를 비롯한 다양한 유형의 프록시를 지원합니다. 프록시 서버를 통해 데이터를 전송하려면 -x(–proxy) 옵션을 선택한 다음 프록시 URL을 사용합니다.
다음 명령은 192.168.44.1 포트 8888에서 프록시를 사용하여 지정된 리소스를 다운로드합니다.
curl -x 192.168.44.1:8888 http://linux.com/프록시 서버에 인증이 필요한 경우 -U(–proxy-user) 옵션을 사용하고 사용자 이름과 암호를 콜론(user:password)으로 구분합니다.
curl -U username:password -x 192.168.44.1:8888 http://linux.com/결론
curl은 원격 호스트에서 또는 원격 호스트로 데이터를 전송할 수 있는 명령줄 도구입니다. 이 기능은 문제 해결, 파일 다운로드 등에 유용합니다.
이 튜토리얼에 표시된 예는 간단하지만 가장 많이 사용되는 컬 옵션을 보여 주며 컬 명령의 작동 방식을 이해하는 데 도움이 됩니다.
출처 : https://lucidmaj7.tistory.com/283
※ 위 포스팅이 문제있을 시 삭제처리 하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.