커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 응용프로그램 / 소프트웨어 > 인터넷(메일, FTP, wget ...) 도움말
검색 : 사이트 WHOIS 웹서버 종류


  wget 사용하기 (글 강종득) 작성일 : 2003/11/19 16:27
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 7104
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      출  처 : http://www.linuxdoc.pe.kr/bbs/zboard.php?id=etc
    글쓴이 : 강종득
    제  목 : wget : site mirroring

    -------------------------------------------------------------------------------'

    강종득님(medikang@hitel.net) /홈페이지 ( http://myhome.shinbiro.com/~medikang/ )

    여러분은 가끔씩 이 홈페이지는 자주 참고하는데 이를 내 컴퓨터에 옮겨놓고 싶다고 생각되는 경우가 있습니까. 이 때 사용할 수 있는 것이 바로 지금 소개하는 'wget'입니다.

    하는 일은 MS 윈도즈의 'Teleport Pro'라는 것과 비슷하다고 할 수 있겠죠. 이 wget은 한텀상에서 커맨드라인으로 사용하는 것입니다. 그러나 저 개인적으로 생각하기에는 'Teleport Pro'보다 더 편리한 것 같습니다. 이 프로그램은 http://www.gnu.org/software/wget/wget.html에서 구하실 수 있습니다. 제가 쓰고 있는 것은 Linux magazine 2000년도 3월호 부록 CD에 있던 것입니다.

    먼저 압축된 파일 wget-5.3.1.tar.gz을 적당한 디렉토리에 복사해 넣습니다. 그후

    # tar xvzf wget-5.3.1.tar.gz

    명령하면 그 디렉토리에 'wget-5.3.1'라는 이름의 디렉토리가 생깁니다. 이 디렉토리로 들어가서

    # ./configure
    # make install

    이라 하면 wget-5.3.1/src 디레토리 내에 'wget'이라는 실행파일이 만들어집니다. 패스가 열려있는 디렉토리에 심볼릭 링크를 만들던가 쉘 스크립트를 만들어 넣어두면 어느 디렉토리에서도 이것을 실행시킬 수 있습니다.

    사용방법은 간단합니다.

    # 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: 메세지를 전혀 보내지 않을 것인지의 여부
      커피닉스 카페 최근 글
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~