2011. 8. 17. 11:45

wget을 사용하여 파일 다운로드

♧ 가끔 커맨드라인 명령어를 사용하여 원격 서버에서 파일 다운로드가 필요하다.

예를 들면, RPM 소프트웨어 패키지에 대한 링크를 찾을 수 있지만, 링크는 HTTP 바로 설치

RPM을 막기 위한 HTTP 리다이렉트를 몇 개 통과해야 한다.

혹은 매일 밤 로그 파일을 자동으로 다운로드하는 스크립트를 원할지 모른다.

 

wget 명령어는 웹 서버(HTTP 그리고 HTTPS)와 FTP 서버에서 파일을 다운받을 수 있다.

 

▶ wget 으로 이미지 파일 다운로드.

$ wget https://t1.daumcdn.net/cfile/tistory/133BD1594DFD44E33A

--2011-08-17 11:31:35-- https://t1.daumcdn.net/cfile/tistory/133BD1594DFD44E33A

Resolving cfile3.uf.tistory.com... 118.222.183.121

접속 cfile3.uf.tistory.com|118.222.183.121|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 21104 (21K) [image/png]

Saving to: `133BD1594DFD44E33AE5B6'

 

100%[==========================================>] 21,104 --.-K/s in 0.02s

 

2011-08-17 11:31:35 (1.31 MB/s) - `133BD1594DFD44E33AE5B6' saved [21104/21104]

 

▶ FTP 서버가 로그인과 패스워드가 필요할 때, wget 커맨드 사용 형식.

$ wget ftp://user:password@ftp.example.com/path/to/file

$ wget --user=user --password=password ftp://ftp.example.com/path/to/file

예를 들면 다음과 같다.

$ wget ftp://chris:mykuulpwd@ftp.linuxtoys.net/home/chris/image.jpg

$ wget --user=chris --password=mykuulpwd ftp.linuxtoys.net/home/chris/image.jpg

 

▶ wget으로 단일 웹페이지 다운.

$ wget http://www.wiley.com

웹페이지 다운로드

$ wget -p http://www.wiley.com

웹페이지와 요소들 다운

$ wget -pk http://www.wiley.com

페이지 다운로드와 로컬 파일 이름 사용

$ wget -pkK http://wiley.com

로컬 이름 변경, 원본 유지

$ wget -E http://www.aspexamples.com

다운로드 파일에 .html 추가

$ wget -m http://www.linuxtoys.net

타임스탬프를 추가하고 FTP 디렉토리 목록 유지

$ wget -mEkK http://www.linuxtoys.net

가장 쓸만한 복사본

$ wget -c http://example.com/DVD.iso

중단된 파일을 계속 이어서 다운로드

 
▶ 자주쓰는 예: wget -r -np -A.<확장자> -l <깊이지정> URL 

 

 

 

cURL을 사용하여 파일 전송

♧ URL의 애플리케이션(curl 명령어)을 위한 클라이언트는 웹 및 FTP 프로토콜을 사용하여 파일을

전송하기 위해 wget과 유사한 기능을 제공, 그러나 curl 명령어는 또한 SSH 프로토콜(SCP, SFTP),

LDAP, DICT, Telnet 그리고 File 등 다른 인기 있는 프로토콜을 사용하여 파일을 전송할 수 있다.

 

대용량 및 순환 다운로드(wget)를 지원하는 대신, curl은 싱글-샷 파일 전송을 위해 디자인되었다.

그러나 더 많은 프로토콜 및 일부 깔끔하고 고급스러운 기능을 지원.

 

▶대괄호'[]'를 사용하여 일치하는 문자 혹은 숫자 범위 지정하여 사용.

$ curl -O ftp://kernelorg.mirrors.tds.net/pub/linux/kernel/v1.0/patch[6-8].sign

▶중괄화'{}'를 사용하여 일치하는 문자 혹은 숫자를 지정하여 사용.

$ curl -OO ftp://kernelorg.mirrors.tds.net/pub/linux/kernel/v2.0/ChangeLog-2.6.{1,4}

▶서버의 유저이름과 패스워드, 파일다운로드(fileA)를 추가, 다운로드 완료시 파일 삭제

$ curl -O ftp://chris:MyPasswd@ftp.example.com/home/chris/fileA -Q '-DELE fileA'

▶FTP서버에 install.log 파일을 업로드(-T).

$ curl -T install.log ftp://chris:MyPasswd@ftp.example.com/tmp/ \

-Q "-RNFR install.log" -Q "-RNTO Xinstall.log

▶ftp.kernel.org/pub/ 디렉토리의 컨텐츠 목록을 curl로 알려줌.

$ curl ftp://ftp.kernel.org/pub// List /pub/ contents /pub/

 

 

Posted by devanix