−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS

VPS로 파일 전송하는 방법: scp, rsync, SFTP

scp로 서버와 파일을 주고받고, 큰 폴더는 재개가 가능한 rsync로 동기화하거나 SFTP 클라이언트를 쓰세요. 개인 SSH 포트가 있는 NAT에서도 됩니다.

언젠가는 파일을 서버로 올려야 합니다. 사이트 빌드 결과물, 데이터베이스 덤프, 로컬에서 작성한 설정 파일 같은 것들입니다. 이를 위해 FTP 서버가 필요하지는 않습니다. SSH가 이미 좋은 도구 세 가지를 제공합니다. 모든 예시는 문서용 주소를 쓰므로 여러분의 서버 주소로 바꾸세요.

연결 정보 파악하기

scp: 파일이나 폴더 복사하기

파일 업로드:

scp backup.sql root@203.0.113.10:/root/

파일 다운로드:

scp root@203.0.113.10:/var/log/nginx/access.log .

폴더 전체:

scp -r ./site root@203.0.113.10:/var/www/

NAT 요금제에서는 대문자 -P로 포트를 지정합니다.

scp -P 20123 backup.sql root@your-nat-host:/root/

rsync: 폴더에 알맞은 도구

rsync는 차이만 보내고, 진행 상황을 보여 주며, 연결이 끊겨도 이어서 진행합니다. 양쪽 모두에 설치되어 있어야 합니다(apt install -y rsync).

rsync -avzP ./site/ root@203.0.113.10:/var/www/site/

사용자 지정 SSH 포트를 쓸 때:

rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/

대상을 정확한 미러로 만들려면(로컬에서 지운 파일도 삭제) --delete를 더하되, 먼저 무엇이 일어날지 확인하세요.

rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/

끝의 슬래시를 조심하세요. ./site/는 site의 내용을 복사하고, ./site는 폴더 자체를 대상 안에 복사합니다. --delete를 쓰면 이 차이가 어느 디렉터리를 비울지를 결정합니다.

SFTP: 대화형 또는 GUI

명령줄 클라이언트는 작은 파일 관리자처럼 동작합니다.

sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit

GUI가 더 좋으신가요? FileZilla, WinSCP, Cyberduck도 같은 정보로 연결합니다. 프로토콜은 SFTP, 호스트, 포트 22(또는 NAT 포트), 사용자 root, 그리고 SSH 키나 비밀번호입니다.

SSH 키로 더 빠르게

이 도구들은 모두 SSH를 쓰므로, SSH 키가 있으면 비밀번호 입력이 사라지고 cron으로 전송을 자동화할 수 있습니다. 아직 안 하셨다면 SSH 키 인증을 설정하세요. 새 EQVPS 서버는 키로 바꿀 때까지 패널의 root 비밀번호를 받아 주지만, 첫날 바꾸기를 권합니다.

대용량 전송

수십 기가바이트라면 합리적인 선택은 rsync뿐입니다. 연결이 끊기면 같은 명령을 다시 실행하면 멈춘 곳부터 이어 갑니다. 노트북을 덮어도 중단되지 않도록 보내는 쪽 컴퓨터에서 tmux나 screen 안에서 실행하세요.

관련

자주 묻는 질문

scp와 rsync의 차이는 무엇인가요?

scp는 매번 모든 것을 복사합니다. rsync는 양쪽을 비교해 바뀐 것만 보내고, 중단된 전송을 이어 갈 수 있으며, 폴더를 미러링할 수 있습니다. 파일 하나라면 scp로 충분하고, 자주 동기화하는 폴더에는 rsync를 쓰세요.

표준이 아닌 SSH 포트는 어떻게 쓰나요?

scp와 sftp는 대문자 -P(scp -P 20123), ssh는 소문자 -p를 쓰며, rsync에는 rsync -e 'ssh -p 20123'처럼 넘깁니다. EQVPS NAT 요금제에서는 개인 SSH 포트가 패널에 표시됩니다.

GUI 클라이언트를 써도 되나요?

됩니다. 어떤 SFTP 클라이언트(FileZilla, WinSCP, Cyberduck)든 SSH에 쓰는 것과 같은 호스트, 포트, 사용자, SSH 키나 비밀번호로 연결됩니다. FTP가 아니라 SFTP 프로토콜을 고르세요.

Windows에서도 되나요?

Windows 10과 11에는 OpenSSH가 내장되어 있어서 scp와 sftp가 PowerShell에서 여기와 똑같이 동작합니다. rsync는 포함되어 있지 않으니 WSL에서 쓰거나 WinSCP의 동기화 기능을 쓰세요.

rsync에서 끝의 슬래시는 무슨 뜻인가요?

'rsync -a site/ dest/'는 site의 내용을 dest 안에 복사합니다. 'rsync -a site dest/'는 dest/site를 만듭니다. --delete와 함께 이걸 헷갈리면 엉뚱한 폴더를 비울 수 있으니 먼저 --dry-run으로 실행하세요.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.