Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

wget 마스터하기:15가지 강력한 다운로드 예시

wget 마스터하기:15가지 강력한 다운로드 예시 wget 유틸리티는 인터넷에서 파일을 다운로드하는 가장 좋은 옵션입니다. wget은 대용량 파일 다운로드, 재귀적 다운로드, 비대화형 다운로드, 다중 파일 다운로드 등을 포함한 모든 복잡한 다운로드 상황을 거의 처리할 수 있습니다.

이 기사에서는 wget 사용 방법을 검토해 보겠습니다. 15가지 멋진 wget 예제를 사용하여 다양한 다운로드 시나리오를 구현하세요.

1. wget으로 단일 파일 다운로드

다음 예에서는 인터넷에서 단일 파일을 다운로드하여 현재 디렉터리에 저장합니다.

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

다운로드하는 동안 다음 정보가 포함된 진행률 표시줄이 표시됩니다:

  • 다운로드 완료율(예:아래와 같이 31%)
  • 지금까지 다운로드된 총 바이트 양(예:아래와 같이 1,213,592바이트)
  • 현재 다운로드 속도(예:아래와 같이 68.2K/s)
  • 남은 다운로드 시간(예:아래와 같이 34초 소요)

다운로드 진행 중:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2.1'
31% [=================> 1,213,592 68.2K/s eta 34s

다운로드 완료:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2'
100%[======================>] 3,852,374 76.8K/s in 55s 
2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]

2. wget -O를 사용하여 다른 파일 이름으로 다운로드 및 저장

기본적으로 wget은 마지막 슬래시 뒤의 마지막 단어에서 파일 이름을 선택하는데, 이는 항상 적절하지 않을 수 있습니다.

틀림: 다음 예는 이름이 download_script.php?src_id=7701인 파일을 다운로드하고 저장합니다.

$ wget http://www.vim.org/scripts/download_script.php?src_id=7701

다운로드한 파일이 zip 형식이더라도 아래와 같은 파일로 저장됩니다.

$ ls
download_script.php?src_id=7701

정확함: 이 문제를 해결하려면 -O 옵션을 사용하여 출력 파일 이름을 다음과 같이 지정할 수 있습니다.

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

3. wget –limit-rate를 사용하여 다운로드 속도/다운로드 속도 지정

wget을 실행하는 동안 기본적으로 가능한 전체 대역폭을 차지하려고 시도합니다. 프로덕션 서버에서 대용량 파일을 다운로드하는 경우 이는 허용되지 않을 수 있습니다. 따라서 이를 방지하기 위해 아래와 같이 –limit-rate를 사용하여 다운로드 속도를 제한할 수 있습니다.

다음 예에서는 다운로드 속도가 200k로 제한됩니다.

$ wget --limit-rate=200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

4. wget -c를 사용하여 불완전한 다운로드 계속하기

아래와 같이 wget -c 옵션을 사용하여 중간에 중단된 다운로드를 다시 시작하세요.

$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

이는 중간에 중단된 매우 큰 파일 다운로드를 시작한 경우 매우 유용합니다. 전체 다운로드를 다시 시작하는 대신 -c 옵션을 사용하여 중단된 부분부터 다운로드를 시작할 수 있습니다.

참고: 다운로드가 중간에 중지된 경우 -c 옵션 없이 다운로드를 다시 시작하면 wget은 이전 이름을 가진 파일이 이미 존재하므로 파일 이름에 자동으로 .1을 추가합니다. .1의 파일이 이미 존재하는 경우 끝에 .2의 파일을 다운로드합니다.

5. wget -b를 사용하여 백그라운드에서 다운로드

대용량 다운로드의 경우 아래와 같이 wget 옵션 -b를 사용하여 다운로드를 백그라운드에 두세요.

$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Continuing in background, pid 1984.
Output will be written to `wget-log'.

다운로드가 시작되고 쉘 프롬프트가 다시 표시됩니다. 아래와 같이 tail -f를 사용하여 언제든지 다운로드 상태를 확인할 수 있습니다.

$ tail -f wget-log
Saving to: `strx25-0.9.2.1.tar.bz2.4'
 0K .......... .......... .......... .......... .......... 1% 65.5K 57s
 50K .......... .......... .......... .......... .......... 2% 85.9K 49s
 100K .......... .......... .......... .......... .......... 3% 83.3K 47s
 150K .......... .......... .......... .......... .......... 5% 86.6K 45s
 200K .......... .......... .......... .......... .......... 6% 33.9K 56s
 250K .......... .......... .......... .......... .......... 7% 182M 46s
 300K .......... .......... .......... .......... .......... 9% 57.9K 47s

또한 tail 명령을 효과적으로 사용하여 여러 파일을 보는 방법에 대한 이전 멀티테일 기사를 검토하세요.

6. 사용자 에이전트를 마스크하고 wget –user-agent를 사용하여 브라우저처럼 wget 표시

일부 웹사이트에서는 사용자 에이전트가 브라우저가 아님을 식별하여 페이지 다운로드를 허용하지 않을 수 있습니다. 따라서 –user-agent 옵션을 사용하여 사용자 에이전트를 마스크하고 아래와 같이 브라우저처럼 wget을 표시할 수 있습니다.

$ wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

7. wget –spider를 사용하여 다운로드 URL 테스트

예약된 다운로드를 하려고 할 때, 예약된 시간에 다운로드가 잘 되는지 확인해야 합니다. 그러기 위해서는 일정에서 해당 라인을 정확하게 복사한 후 –spider 옵션을 추가하여 확인하시면 됩니다.

$ wget --spider DOWNLOAD-URL

제공된 URL이 정확하면 다음과 같이 표시됩니다.

$ wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

이렇게 하면 예정된 시간에 다운로드가 성공하게 됩니다. 하지만 잘못된 URL을 제공하면 다음 오류가 발생합니다.

$ wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

다음 시나리오에서 스파이더 옵션을 사용할 수 있습니다:

  • 다운로드를 예약하기 전에 확인하세요.
  • 특정 간격으로 웹사이트 사용 가능 여부를 모니터링합니다.
  • 북마크의 페이지 목록을 확인하고 어떤 페이지가 아직 존재하는지 알아보세요.

8. wget –tries를 사용하여 총 재시도 횟수 늘리기

인터넷 연결에 문제가 있거나 다운로드 파일이 큰 경우 다운로드에 실패할 가능성이 있습니다. 기본적으로 wget은 다운로드를 성공시키기 위해 20번을 재시도합니다.

필요한 경우 아래와 같이 –tries 옵션을 사용하여 재시도 횟수를 늘릴 수 있습니다.

$ wget --tries=75 DOWNLOAD-URL

9. Wget -i를 사용하여 여러 파일/URL 다운로드

먼저, 모든 다운로드 파일이나 URL을 다음과 같이 텍스트 파일에 저장하세요:

$ cat > download-file-list.txt
URL1
URL2
URL3
URL4

다음으로, 아래와 같이 -i 옵션을 사용하여 download-file-list.txt를 wget에 인수로 제공합니다.

$ wget -i download-file-list.txt

10. wget –mirror를 사용하여 전체 웹사이트 다운로드

다음은 전체 웹사이트를 다운로드하여 로컬에서 볼 수 있도록 하려는 경우 실행하려는 명령줄입니다.

$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
  • –mirror :미러링에 적합한 옵션을 켭니다.
  • -p :특정 HTML 페이지를 올바르게 표시하는 데 필요한 모든 파일을 다운로드합니다.
  • –convert-links :다운로드 후 로컬에서 볼 수 있도록 문서의 링크를 변환합니다.
  • -P ./LOCAL-DIR :모든 파일과 디렉터리를 지정된 디렉터리에 저장합니다.

11. wget –reject를 사용하여 다운로드하는 동안 특정 파일 형식 거부

유용한 웹사이트를 찾았지만 이미지를 다운로드하고 싶지 않다면 다음을 지정하세요.

$ wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

12. wget -o를 사용하여 stderr 대신 로그 파일에 메시지 기록

로그를 터미널이 아닌 로그 파일로 리디렉션하고 싶을 때.

$ wget -o download.log DOWNLOAD-URL

13. wget -Q를 사용하여 특정 크기를 초과하면 다운로드를 종료합니다.

5MB를 초과할 때 다운로드를 중지하려면 다음 wget 명령줄을 사용할 수 있습니다.

$ wget -Q5m -i FILE-WHICH-HAS-URLS

참고: 단일 URL을 다운로드하는 경우에는 이 할당량이 적용되지 않습니다. 이는 할당량 크기와 관계없이 단일 파일을 지정하면 모든 항목이 다운로드됩니다. 이 할당량은 반복 다운로드에만 적용됩니다.

14. wget -r -A를 사용하여 특정 파일 형식만 다운로드

다음과 같은 상황에서 이 기능을 사용할 수 있습니다:

  • 웹사이트에서 모든 이미지 다운로드
  • 웹사이트에서 모든 동영상을 다운로드하세요
  • 웹사이트에서 모든 PDF 파일 다운로드
$ wget -r -A.pdf http://url-to-webpage-with-pdfs/

15. wget으로 FTP 다운로드

아래와 같이 wget을 사용하여 FTP 다운로드를 수행할 수 있습니다.

Wget을 사용한 익명 FTP 다운로드

$ wget ftp-url

사용자 이름 및 비밀번호 인증과 함께 wget을 사용하여 FTP를 다운로드합니다.

$ wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

이 기사가 마음에 드셨다면 맛있음 또는 Stumble로 북마크해 주세요.