조회 수 12001 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

GNU wget은 상호작용을 필요로 하지 않는 다운로드 프로그램으로 Web으로 부터 파일들을 가져올 수 있다.
HTTP, HTTPS, FTP 프로토콜을 지원하며, HTTp proxy에서 데이터를 가져올 수도 있다.
wget은 HTML과 XHTML 페이지를 다운로드 받아서 로컬 파일시스템에 저장한다.
이때 파일이름과 디렉토리 구조를 그대로 로컬시스템에 구축함으로써, backup, mirror 사이트 구축등에 사용할 수도 있다.


옵션

-b, --background : 백그라운드에서 작동하도록 한다.


-e, --execute=COMMAND : .wgetrc를 읽어서 명령을 실행한다.


-a, --append-output=FILE : 메시지들을 파일에 추가한다


-i, --input-file=FILE : 다운로드 받을 URL주소를 파일에서 찾는다.


-F, --force-html : HTML과 같은 파일을 입력값으로 취급한다.


-t, --tries=NUMBER : 설정한 숫자 만큼 다시 시도한다. 0은 무한대


-O, --output-doc-ument=FILE : 문서를 파일로 쓴다.


-c, --continue : 연결이 끊긴 시점부터, 이어서 파일을 다운로드 받는다.


-N, --timestamping : 로컬에 있는 것보다, 새롭지 않으면 파일을 다시 받지 않는다.


-Y, --proxy=on/off : 프락시 모드를 켜고 끈다.


-Q, --quota=NUMBER : 숫자만큼 분담하도록 설정한다.


-x, --force-directories : 디렉토리를 강제로 생성한다.


-nH, --no-host-directories : 호스트 이름의 디렉토리를 생성하지 않는다.


-P, --directory-prefix=PREFIX : 파일들이 저장될 디렉토리를 지정한다.

 

# wget www.test.net/~download/index.html

명령을 내린 현재 디렉토리에 'index.html'을 복사합니다.

 

# wget -r www.test.net/~download/

'r'은 '재귀적'을 의미하는 'recursive'의 줄임. 디렉토리 구조와 파일을 그대로 복사해 옵니다.

 

# wget -r www.test.net/~download/index.html

'index.html'과 이것에 링크된 파일들을 복사해 오게 됩니다.

 

# wget -r -np www.test.net/~download/index.html

'np'은 링크된 파일 중 상위 디렉토리에 있는 것도 있는데 이것들은 빼고 원하는 파일이 있는 디렉토리와 그 이하에서만 받아 오게 됩니다.

 

# wget -r -np -A html,htm www.test.net/~download/

홈페이지에서 그림이나 오디오파일 등은 빼고 HTML 문서만 복사해오려고 한다면 원하는 파일의 형식을 나열하면 됩니다.

 

# wget -r -R gif,jpg,jpeg www.test.net/~download/

일부 파일을 제외하고 싶으면 '-R' 옵션을 사용합니다. 'R'은 'reject'를 의미합니다. 예를 들어 파일의 뒷부분의 문자열이 'gif','jpg','jpeg'인 파일들은 제외하고 나머지 파일들만 불러옵니다.



--------------------------------------------------------------------



사용법사용방법은 간단합니다.

# wget -h

하면 간략한 설명을 볼 수 있고,

# man wget

하면 좀더 많은 설명을 볼 수 있습니다. 먼저, 예를 들어서 홈페이지 www.hitel.net/~myname을 복사해 온다고 합시다. 그러면 ppp 접속이 되어 있는 상태에서


# wget http://www.hitel.net/~myname/index.html

이라고 명령하면 됩니다. 'http://'는 생략해도 됩니다. 'index.html' 부분도 생략하면 알아서 먼저 'index.html' 또는 'index.htm'을 찾으므로


# wget www.hitel.net/~myname/

라고 해도 됩니다. 그러면 명령을 내린 현재 디렉토리에 'index.html'을 복사합니다. 자, 그러면 index.html에 링크되어 있는 것까지 찾아오려면 어떻게 할까요. '-r' 옵션을 사용합니다. 즉,

# wget -r www.hitel.net/~myname/

이렇게 사용합니다. 'r'은 '재귀적'을 의미하는 'recursive'의 줄임이겠지요. 디렉토리 구조와 파일을 그대로 복사해 옵니다.

재귀적 탐색의 깊이레벨은 기본값이 '5'로 되어있습니다. '-l depth' 옵션을 사용하면 바꿀 수 있습니다. 그러니까 기본값은 '-l 5'란 이야기겠죠. 이 레벨이 증가함에 따라 복사해오는 파일은 지수함수적으로 증가하게 됩니다.


만약 홈페이지 전체가 아니라 특정 페이지와 링크되어 있는 것만 받아오려면 어떻게 할까요. 예를 들어


# wget -r www.hitel.net/~myname/doc/lecture/lecture.html

이라고 하면 'lecture.html'과 이것에 링크된 파일들을 복사해 오게 됩니다. 이 과정에서 링크된 파일 중 상위 디렉토리에 있는 것도 있는데 이것들은 빼고 원하는 파일이 있는 디렉토리와 그 이하에서만 받아 오려면

# wget -r -np www.hitel.net/~myname/doc/lecture/lecture.html

이렇게 '-np' 옵션을 사용합니다. 'np'는 'no-parent'를 의미합니다.

자, 홈페이지에서 그림이나 오디오파일 등은 빼고 HTML 문서만 복사해오려고 한다면


# wget -r -np -A html,htm www.hitel.net/~myname/

처럼 '-A' 옵션을 사용합니다. 'A'는 'accept'를 의미합니다. 위의 예처럼 원하는 파일의 형식을 나열하면 됩니다. 반대로 일부 파일을 제외하고 싶으면 '-R' 옵션을 사용합니다. 'R'은 'reject'를 의미합니다. 예를 들어

# wget -r -R gif,jpg,jpeg www.hitel.net/~myname/

라고 하면 파일의 뒷부분의 문자열이 'gif','jpg','jpeg'인 파일들은 제외하고 나머지 파일들만 불러옵니다.

뭐, 이정도만 하면 충분히 잘 사용할 수 있습니다. 그러나 그외 몇가지만 더 설명드리겠습니다.


'-L' 옵션을 사용하면 상대주소를 이용한 링크들만 불러 옵니다. 다른 호스트에 있는 자료는 당연히 불러오지 않습니다. 그런데 대부분의 HTML 내의 링크는 상대주소를 이용할 것으로 생각되기 때문에 (제 생각에) 크게 중요하지는 않을 것 같습니다. 'L'은 'reLative'를 의미합니다. 아래의 예처럼 사용할 수 있겠죠.


# wget -r -L www.hitel.net/~myname/

만약 다른 호스트의 자료까지 재귀적 탐색의 대상에 넣으려면 '-H' 옵션을 씁니다. 이는 'span-hosts'를 의미합니다.

wget을 실행시켜 보시면 메세지가 장황하게 나옵니다. 메세지를 전혀 나오지 않게 하려면 'quiet'를 의미하는 '-q' 옵션을, 쬐끔만 나오게 하려면 'non-verbose'를 의미하는 '-nv' 옵션을 사용하십시오.


wget은 파일을 불러올 때 컴퓨터 내에 같은 이름의 파일이 존재하면 기존의 파일은 그대로 두고 기존의 이름의 끝에 'original.file.1', 'original.file.2', 이런 식으로 숫자를 붙인 이름으로 복사합니다. 만약, 같은 이름의 파일이 있을 경우 복사해 오지 않게 하려면 'not-clobber'를 의미하는 '-nc' 옵션을 사용하면 됩니다.


매번 같은 옵션을 커맨드라인에서 사용하기는 번거롭겠죠? 자신의 홈디렉토리에다 '.wgetrc'라는 파일을 만들고 필요한 옵션들을 기록하면 매번 옵션을 주지 않아도 됩니다. 저의 것을 예로 들겠습니다.

 

1 accept = htm,html 

2 #reject = 

3 recursive = on 

4 #reclevel = 5 

5 no_parent = on 

6 #relative_only = on 

7 #verbose = on/off 

8 span_hosts = on/off 

9 #noclobber = on/off 

10 #quiet = on/off

앞의 번호는 편의를 위하여 붙여놓은 것입니다. '#'로 시작하는 행은 주석이므로 무시됩니다. 필요시 '#'를 제거하면 됩니다. '변수 = 값'으로 표현되며 대부분 원하는 값은 on 또는 off가 되고 일부분만 숫자 또는 문자열을 값으로 주게 됩니다. 각 행에 대해 간략히 설명합니다.

1: 원하는 파일의 형식을 나열 

2: 배제하기를 원하는 파일의 형식을 나열 

3: 재귀적 탐색 여부 

4: 재귀적 탐색의 깊이레벨 

5: 상위 디렉토리의 파일 배제의 여부 

6: 상대주소만 포함시킬 것인지의 여부 

7: 자세한 설명을 표시할 것인지의 여부 

8: 다른 호스트도 탐색할 것인지의 여부 

9: 같은 이름의 파일을 복사해 오지 않을 것인지의 여부 

10: 메세지를 전혀 보내지 않을 것인지의 여부


4 discussion위에서 설명한 옵션을 잘 활용하면 홈페이지에 갱신되는 내용을 웹 브라우저로 접근하지 않고서도 가져올 수 있다. 예를 들어, 만약 내가 잘 가는 무료 porn 사이트에 링크된 url에 올려져 있는 동영상을 보고 싶다고 하자. 다음과 같이 wget 명령을 사용한다.

# wget -A mpg,mpeg,avi,asf -r -H -l 2 -nd -t 1 http://url.you.like

-A, -r, -H은 위에서 설명했고, 설명이 안된 옵션을 살펴보면, 

-l 2 : Recursive depth. 재귀 검색의 깊이 레벨을 지정해준다. 2로 지정해주면, 메인 페이지에서 url을 따라가고 그 url에 링크된 비디오 파일을 가져오도록 한다.


-nd : No directories. 로칼에 다운받을 때 디렉토리를 생성하지 않고 모든 파일을 같은 디렉토리 안에 넣는다.


-t 1 : Retries. link된 url로 서버를 찾지 못할 때 retry 횟수를 지정한다. 여기서는 1번 시도를 하도록 지정했다.



Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
30 LINUX epoch time을 실제 시간으로 변환해주는 excel 함수 2015.03.18 8783 0
29 LINUX [Shell Script] 쉘 프로그래밍을 위한 명령어 file 2015.04.30 7232 0
28 LINUX [Shell Script] 쉘 스크립트 함수에서 return값 반환 2015.04.30 23443 0
27 LINUX 내 .bashrc 설정 secret 2015.08.31 0 0
» LINUX 커맨드라인에서 url 접근 - wget 사용법 2015.09.30 12001 0
25 LINUX 리눅스 부팅시 명령스크립트 실행하기 2015.09.30 10327 0
24 LINUX 리눅스 시스템 시작시에 자동 실행할 파일 등록하기 2015.09.30 10088 0
23 LINUX iptables 명령어 - 방화벽 설정 2016.02.01 12624 0
22 LINUX 삼바(SAMBA)를 이용한 윈도우 접근 가능 공유폴더 만들기 2016.02.23 17809 0
21 LINUX 리눅스 그룹관리 (groupadd, groupmod, groupdel) 2016.02.23 8252 0
20 LINUX 우분투(Ubuntu) 설치된 패키지 목록 확인하기 2016.03.17 6587 0
19 LINUX 우분투(Ubuntu)에서 APM 웹서버 구축하기 2016.03.17 7352 0
18 LINUX 리눅스 계정 목록 보기 2016.03.21 7310 0
17 LINUX 리눅스 파일시스템 체크 하기 fsck(e2fsck) 사용법 2016.04.15 39583 0
16 LINUX OpenGrok 설치 빨리하기 2016.04.27 10456 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 Next ›
/ 5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5