
안녕하세요! 오늘은 서버 관리자라면 한 번쯤 겪게 되는 대용량 파일 백업 문제를 스마트하게 해결해 보려 합니다.
보통 호스팅을 쓰면 하루 트래픽 제한이 걸려 있죠? 20GB짜리 통 백업 파일을 받다가 중간에 끊기면 트래픽만 날리고 처음부터 다시 받아야 하는 불상사가 생깁니다. 이럴 때 가장 좋은 방법이 바로 나눠서 압축하기입니다.
1. 왜 분할 압축을 하나요?
- 트래픽 분산: 20GB 파일을 5GB씩 4개로 나누어 며칠에 걸쳐 다운로드할 수 있습니다.
- 파일 안정성: 전송 중 끊겨도 해당 조각만 다시 받으면 됩니다.
- 업로드 제한 해결: 일부 클라우드나 FTP는 한 번에 올릴 수 있는 용량이 정해져 있기도 하거든요.
2. 분할 압축하기 (tar + split)
리눅스에서는 tar로 압축하면서 동시에 split으로 잘라주는 명령어를 사용합니다.
추천 명령어 (5GB 단위로 나누기)
tar -cvzf - ./public_html | split -b 5120m - goz.20260422.tgz.
옵션 파헤치기
- tar -cvzf - : 현재 폴더를 압축하되, 결과물을 파일이 아닌 '표준 출력'으로 보냅니다.
- | : 앞의 압축 데이터를 뒤의 split 명령어로 넘겨줍니다.
- split -b 5120m: 5120MB(5GB) 단위로 자르겠다는 뜻입니다.
- - : 넘겨받은 데이터를 사용한다는 표시입니다.
- goz.20260422.tgz.: 생성될 파일명의 규칙입니다. 뒤에 aa, ab, ac...가 자동으로 붙습니다.
3. 분할된 파일 합치며 압축 풀기
나누어진 파일들을 다시 하나로 합치면서 압축을 푸는 방법입니다.
추천 명령어
cat goz.20260422.tgz.a* | tar -xvzf -
- cat으로 모든 조각(a*)을 순서대로 이어 붙여서 tar에게 던져주는 방식입니다. 참 쉽죠?
여기서 잠깐! 경로 설정 주의사항 (매우 중요)
압축을 할 때와 풀 때 가장 많이 실수하는 게 바로 경로입니다.
전체 경로 사용 시: tar -cvzf - /home/goz/public_html
- 압축을 풀 때도 /home/goz/... 폴더가 그대로 생겨버립니다. 자칫하면 운영 중인 소스 위에 덮어씌워질 위험이 있습니다.
현재 위치 기준(권장): 압축하려는 폴더(public_html) 바로 상위 디렉토리로 이동한 뒤 작업하세요.
- cd /home/goz 이동 후 tar -cvzf - ./public_html 실행
- 이렇게 하면 압축을 풀 때 현재 내가 있는 위치에 바로 public_html 폴더가 생겨서 관리가 훨씬 편합니다.
관리자 팁: 권한 설정도 잊지 마세요!
압축을 풀고 나면 파일 소유권이 꼬일 수 있습니다. 웹사이트가 정상 작동하려면 소유권을 다시 맞춰줘야 합니다.
# 소유권 변경 chown -R goz:gozpublic_html/ # 업로드 폴더처럼 쓰기 권한이 필요한 곳만 707 또는 777 chmod 707 public_html/upload
이제 트래픽 걱정 없이 안전하게 서버 백업하세요!