일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 지혜를가진흑곰
- 돈
- 자바스크립트
- 서평
- JavaScript
- 책을알려주는남자
- Java
- 프로그래밍언어
- C
- 다독
- 성분
- 독후감
- 주식
- 독서
- 화장품
- 투자
- 경제
- 백준알고리즘
- 책알남
- 프로그래머스 알고리즘 공부
- algorithmStudy
- 재테크
- 알고리즘트레이닝
- 채권
- C++
- 알고리즘 공부
- algorithmTest
- 자바
- algorithmtraining
- 알고리즘공부
- Today
- Total
탁월함은 어떻게 나오는가?
Linux(리눅스) : wget(웹 크롤링, 파일 다운로드 등등) 명령어 옵션 정리 및 사용법 본문
Linux(리눅스) : wget(웹 크롤링, 파일 다운로드 등등) 명령어 옵션 정리 및 사용법
Snow-ball 2021. 1. 4. 20:50인터넷에서 파일을 받는 가장 좋은 방법은 wget을 사용하는 것입니다. wget은 여러 복잡한 다운로드 상황을 거의 다 제어할 수 있습니다.
1. 단일 파일 받기
- 인터넷에서 단일 파일을 받아 현재 디렉토리에 저장하는 방법입니다.
ex)
$ wget DOWNLOAD-URL
다운로드 하는 동안 진행 경과와 함께 다음의 정보를 보여줍니다.
- 현재 몇 퍼센트를 받았는지에 대한 정보 (n%)
- 현재까지 다운로드 받은 바이트 수 (xxx,xxx)
- 현재 다운로드 속도 (x.xxKB/s)
- 다운로드 완료까지 남은 시간 (XXs)
2. 다른이름으로 저장하기
- 파일을 저장할 때 wget은 기본적으로 다운로드 경로의 마지막 슬래쉬('/') 다음에 오는 단어를 파일 이름으로 사용합니다. 그런데 이 방법으로는 올바른 파일이름이 아닌 이상한 이름을 뽑아내는 경우도 있습니다.
ex)
$ wget http://www.vim.org/scripts/download_script.php?src_id=7701
위의 경우 다운받은 파일 이름은 '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' 옵션으로 다운로드 속도를 제한할 수 있습니다. 다음은 다운로드 속도를 200k로 제한하는 예입니다.
ex)
$ wget --limit-rate=200k DOWNLOAD-URL
4. 이어받기
- 다운로드 도중 중단했을 경우 '-c'옵션으로 다시 시작할 수 있습니다.
ex)
$ wget -c DOWNLOAD-URL
이는 대용량 파일을 다운로드 받는 도중 멈추고 다른 작업을 해야했을 때 전체파일을 다시 받지 않고 이전에 받은 파일에 이어받을 수 있어서 유용하게 사용됩니다. 만일 '-c'옵션으로 이어받지 않고 이전에 다운로드 중이던 파일이 남아있으면 같은이름으로 다운로드 할 것이므로 새로운 받기에서는 파일이름 뒤에 '.1'이 추가 됩니다. 여기서 '.1'이 있으면 '.2'r가 추가됩니다.
5. 백그라운드에서 다운로드 하기
- 대용량 파일을 받을 때 사용할 수 있는 또 다른 옵션입니다. 이느 다운로드 작업을 백드라운드로 돌리는데 '-b'옵션을 사용합니다.
ex)
$ wet -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Continuing in background, pid 29401.
Output will be written to 'wget-log'
다운로드 상황은 wget-log에 모두 기록됩니다. 이 내용을 모니터링 하고 싶으면 tail명령어(tail-f wget-log)를 이용해 볼 수 있습니다.
6. 브라우저에서 다운로드 하는 것 처럼 user-agent 정보 보내기
- 몇몇 웹사이트는 브라우저로 다운로드하지 않는다고 판단될 경우 다운로드를 허가하지 않는 경우가 있습니다. 이 때'--user-agent'옵션으로 정보를 함께 보낼 수 있습니다.
ex)
$ wet --user-agent="Mozilla/5.0 (X11; U; Linux 1686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" DOWNLOAD-URL
7. 다운로드 가능한지 확인하기
- 특정 시간에 다운로드 일정이 잡혀있을 때, 원격지에 파일이 존재하는지 아닌지 확인을 해봐야 합니다. 이 때 '--spider' 옵션을 사용하여 링크가 올바른지 확인합니다.
ex)
URL이 올바를 경우
$ wget --spider http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: 3852374 (3.7M) [application/x-bzip2]
Remote file exists.
에러가 있을 경우
$ wget --spider http://www.openss7.org/repos/tarballs/strx25
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!
8. 재시도 횟수 지정하기
- 인터넷 연결에 문제가 있을 경우나 파일 다운로드 실패가 일어날 경우 기본 재시도 횟수는 20입니다. 하지만 더 오래 시도해볼 필요가 있을 때 '--tries'옵션으로 재시도 횟수를 조정할 수 있습니다.
ex)
$ wget --tries=75 DOWNLOAD-URL
9. 여러개의 파일 다운로드하기
- 여러 파일을 다운로드 하려면 다운로드 하려는 여러 링크를 써놓은 파일(엔터로 구분)을 만드록 '-i' 옵션을 통해 작업을 진행합니다.
ex)
$ wget -i FILE-WHICH-HAS-URLS
10. 전체 웹사이트 다운로드 받기
- 아래 예시는 로컬에서 전체 웹사이트를 볼 수 있도록 합니다.
ex)
$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
- --mirror : 미러링 옵션을 활성화
- -p : html 페이지를 알맞게 표시하기 위해 필요한 모든 파일을 다운로드
- --convert-links : 다운로드를 마친 후 링크를 로컬로 변경
- -P ./LOCAL-DIR : 다운로드할 디렉토리 지정
11. 파일 타입에 따라 다운로드 제외
- 유용한 정보가 있는 웹사이트를 다운로드 받고싶지만 이미지파일은 받고 싶지 않을 때 '--reject'옵션으로 파일타입별로 다운로드 제외합니다.
ex)
$ wget --reject=gif WEBSITE-URL
12. 로그파일 남기기
- wget은 에러메시지를 stderr에 출력하는데 '-o'옵션으로 지정한 파일에 로그를 남길 수 있습니다.
ex)
$ wget -o download.log DOWNLOAD-URL
13. 지정된 크기만큼만 다운로드
- 단일 파일 받기에는 적용되지 않고 재귀적 다운로드 일 때만 적용됩니다. '-Q'옵션을 사용합니다.
ex)
$ wget -Q5m -i FILE-WHUCH-HAS-URLS
14. 특정 파일 타입만 다운로드
- 웹사이트에서 이미지만 또는 비디오만, pdf만 다운로드 받으려면 '-r -A'옵션을 사용합니다. '-r'을 재귀적 탐색을 지시하고 '-A'는 accept할 파일 타입을 지정합니다.
ex)
$ wget -r -A.pdf WEBSITE-URL
15. ftp 다운로드하기
- wget으로 ftp 다운로드를 할 수 있습니다.
ex)
anonymous ftp 다운로드는 다음 예제와 같습니다.
$ wget FTP-URL
- 인증이 필요한 ftp는 '--ftp-user'와 '--ftp-passeword'를 입력해야 합니다.
ex)
$ wget --ftp-user=USERNAME --ftp-PASSWORD FTP-URL
'[Snow-ball]프로그래밍(컴퓨터) > Linux(리눅스)' 카테고리의 다른 글
리눅스 터미널로 위치 기억안날때 (0) | 2021.02.05 |
---|---|
Linux(리눅스) : dpkg(패키지 관리 프로그램) 명령어 옵션 정리 및 사용법 (0) | 2021.01.05 |
Linux(리눅스) : vi(편집기 명령어 - 입력 모드, 커맨드 모드) 명령어 옵션 정리 및 사용법 (0) | 2021.01.04 |
Linux(리눅스) : tar 명령어 옵션 정리 및 사용법 (0) | 2021.01.04 |
Linux(리눅스) : mv 명령어 옵션 정리 및 사용법 (0) | 2021.01.04 |