언젠가는 파일을 서버로 올려야 합니다. 사이트 빌드 결과물, 데이터베이스 덤프, 로컬에서 작성한 설정 파일 같은 것들입니다. 이를 위해 FTP 서버가 필요하지는 않습니다. SSH가 이미 좋은 도구 세 가지를 제공합니다. 모든 예시는 문서용 주소를 쓰므로 여러분의 서버 주소로 바꾸세요.
연결 정보 파악하기
- 전용 IP 요금제:
root@203.0.113.10, 포트 22. - NAT 요금제: 호스트와 개인 SSH 포트가 패널에 표시됩니다(예: 포트 20123). 아래의 모든 명령에 그 포트가 필요합니다. NAT 접속 방식을 참고하세요.
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/
-a는 권한과 타임스탬프를 유지하고,-v는 파일 목록을 보여 주고,-z는 압축하며,-P는 진행 상황을 보여 주고 재개를 가능하게 합니다.
사용자 지정 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 안에서 실행하세요.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.