Wget 활용 완전 정복: 기초부터 고급 테크닉까지

Wget이란?

Wget은 GNU 프로젝트에서 개발한 명령줄 기반 파일 다운로드 도구입니다. 이름은 "World Wide Web"과 "get"의 합성어로, HTTP, HTTPS, FTP, SFTP 프로토콜을 통해 원격 서버에서 파일을 가져올 수 있습니다. C 언어로 제작되어 다양한 운영체제에서 동작하며, 리눅스는 물론 macOS, Windows, AmigaOS 등에서도 사용 가능합니다.

설치 방법

대부분의 리눅스 배포판에서는 기본 설치되어 있으나, 필요 시 아래 명령어로 설치할 수 있습니다.

# Ubuntu/Debian 계열
sudo apt update && sudo apt install wget

# CentOS/RHEL 7 이상
sudo yum install wget

# RHEL 8+/AlmaLinux/Fedora
sudo dnf install wget

기본 사용법

단일 파일 다운로드

특정 URL의 파일을 현재 디렉터리에 저장합니다.

wget https://example.com/data.zip

여러 파일 일괄 다운로드

다수의 URL을 한 번에 처리하려면 링크 목록을 텍스트 파일에 저장한 후 -i 옵션을 사용합니다.

# 파일 예: urls.txt
# https://site.com/file1.pdf
# https://site.com/file2.pdf

wget -i urls.txt

다운로드 파일 이름 지정

-O 플래그를 사용해 저장될 파일 이름을 직접 설정할 수 있습니다.

wget -O report.pdf https://example.com/doc.pdf

저장 경로 지정

-P 옵션으로 출력 디렉터리를 명시합니다. 디렉터리가 없으면 자동 생성됩니다.

wget -P /home/user/downloads/project/ https://example.com/script.sh

다운로드 속도 제한

네트워크 부하를 줄이기 위해 최대 전송 속도를 제어할 수 있습니다.

wget --limit-rate=200k https://example.com/large-file.iso

재시도 횟수 설정

불안정한 네트워크 환경에서 연결 실패 시 재시도 빈도를 조절합니다.

wget --tries=5 https://example.com/stable-data.tar.gz

백그라운드 실행

대용량 파일 다운로드 시 터미널을 점유하지 않고 백그라운드에서 수행합니다. 로그는 wget-log 파일에 기록됩니다.

wget -b https://example.com/big-video.mp4

인증이 필요한 FTP 다운로드

사용자 인증이 필요한 FTP 서버에서 파일을 가져올 때는 아이디와 비밀번호를 제공해야 합니다.

wget --ftp-user=user123 --ftp-password=pass456 ftp://files.example.net/private/archive.tgz

다운로드 이어받기

네트워크 끊김 또는 중단 시 -c 옵션으로 이전 상태에서 다운로드를 재개할 수 있습니다.

wget -c https://example.com/resumable-download.img

고급 활용

웹사이트 미러링 (오프라인 저장)

전체 웹사이트를 로컬에 복제하여 오프라인에서도 열람할 수 있도록 구성합니다.

wget --mirror \
     --convert-links \
     --page-requisites \
     --no-parent \
     -P ./backup-site \
     https://example-website.com
  • --mirror: 재귀적 다운로드 활성화
  • --convert-links: 로컬 호환 링크로 변환
  • --page-requisites: CSS, JS, 이미지 등 리소스 포함
  • --no-parent: 상위 디렉터리 탐색 방지
  • -P: 저장 위치 지정

끊긴 링크 감지 (링크 체커)

웹사이트 내 존재하지 않는 URL(예: 404)을 찾아내는 용도로 사용할 수 있습니다.

wget -o link-check.log -r -l 4 --spider https://example.com

로그 분석을 통해 오류 링크만 추출:

grep -B 2 "404 Not Found" link-check.log | grep "^http" | cut -d' ' -f4 | sort -u

패턴 기반 일괄 다운로드

순차적인 번호나 알파벳 이름의 파일들을 쉘 확장을 이용해 한번에 요청할 수 있습니다.

wget https://example.com/pics/img_{01..10}.jpg
wget https://example.com/files/data_[a-z].csv

이 기능은 Bash 4.0 이상에서 지원되며, 순차 데이터 수집에 매우 유용합니다.

태그: wget command-line linux file-download web-scraping

7월 25일 10:45에 게시됨