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 이상에서 지원되며, 순차 데이터 수집에 매우 유용합니다.