리눅스 curl 사용법과 wget 다운로드 (API 호출, 헤더 확인)
서버에서 파일을 내려받거나, API가 제대로 응답하는지 확인하거나, 웹사이트가 살아 있는지 점검할 때 가장 먼저 꺼내는 도구가 curl과 wget이다. 이 글에서는 실무에서 자주 쓰는 curl 사용법 예제와 wget 다운로드 옵션을 예제 중심으로 정리한다. 네트워크 연결 자체를 점검하는 방법은 리눅스 네트워크 확인 명령어에 있다.

curl과 wget 차이
| 구분 | curl | wget |
|---|---|---|
| 주 용도 | HTTP 요청, API 테스트, 데이터 전송 | 파일 다운로드 |
| 기본 출력 | 화면에 출력 | 파일로 저장 |
| 이어받기 | -C - | -c |
| 재귀 다운로드 | 안 됨 | 가능(-r) |
정리하면 “파일 받기는 wget, 나머지는 curl”로 기억하면 편하다. 둘 다 없다면 패키지 관리자로 설치한다.
curl 사용법 기본: 내려받기와 리다이렉트
# 화면에 출력
curl https://example.com
# 원래 파일 이름으로 저장
curl -O https://example.com/file.tar.gz
# 이름을 정해서 저장
curl -o app.tar.gz https://example.com/download
# 리다이렉트(301, 302) 따라가기
curl -L -O https://example.com/latestcurl 사용법 응용: 헤더와 상태 코드 확인
# 응답 헤더만 보기
curl -I https://itinfo.it.kr
# 요청과 응답 과정을 자세히 (SSL, 리다이렉트 디버깅)
curl -v https://itinfo.it.kr
# 상태 코드만 출력
curl -s -o /dev/null -w "%{http_code}\n" https://itinfo.it.kr
# 응답 시간 측정
curl -s -o /dev/null -w "총 %{time_total}초\n" https://itinfo.it.kr-I로 보면 서버 종류, 캐시 설정, 리다이렉트 위치를 바로 알 수 있다. Nginx와 SSL 설정을 한 뒤 HTTPS 리다이렉트가 제대로 되는지 확인할 때도 유용하다.
API 호출: POST와 JSON
# JSON 보내기
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"kim","age":30}'
# 인증 헤더
curl -H "Authorization: Bearer $TOKEN" https://api.example.com/me
# 기본 인증
curl -u admin:password https://example.com/admin토큰이나 비밀번호를 명령줄에 직접 쓰면 셸 기록에 남는다. 환경 변수로 넘기는 방법은 리눅스 환경 변수 설정을 참고하자.
wget 다운로드 옵션
# 기본 다운로드
wget https://example.com/file.iso
# 끊긴 다운로드 이어받기
wget -c https://example.com/file.iso
# 저장 이름 지정, 조용히
wget -q -O app.tar.gz https://example.com/download
# 속도 제한 (서버 부하 줄이기)
wget --limit-rate=5m https://example.com/big.iso
# 백그라운드 다운로드 (로그는 wget-log)
wget -b https://example.com/big.iso스크립트에서 쓰는 curl 옵션
자동화 스크립트에서는 실패를 제대로 잡아내는 것이 중요하다. curl은 기본적으로 404나 500 응답에도 성공(종료 코드 0)으로 끝나기 때문에 -f 옵션을 붙여야 한다.
#!/bin/bash
# 웹사이트 상태 점검 (crontab에 5분마다 등록)
URL="https://itinfo.it.kr"
if ! curl -fsS --max-time 10 -o /dev/null "$URL"; then
echo "[$(date '+%F %T')] $URL 응답 없음" >> /var/log/health_check.log
fi| 옵션 | 뜻 |
|---|---|
-f | HTTP 오류 시 실패로 종료 |
-s | 진행률 숨기기 |
-S | -s와 함께 써도 오류 메시지는 표시 |
--max-time 10 | 최대 10초 후 중단 |
--retry 3 | 실패 시 3번 재시도 |
스크립트 작성법은 쉘 스크립트 기초, 주기적으로 돌리는 방법은 crontab 사용법에 있다.
curl 사용법 정리
curl은 -O, -L, -I, -v, -X POST -H -d만 알아도 대부분의 상황을 해결할 수 있고, wget은 -c와 -O만 기억하면 된다. 옵션 전체는 curl 공식 매뉴얼과 GNU wget 매뉴얼에서 볼 수 있다.
첫 댓글을 남겨보세요