Linux 서버에서 다른 Linux 서버로 파일을 복사할 때 가장 많이 쓰고 안전한 방법은 scp와 rsync 명령어입니다. 둘 다 SSH 보안 프로토콜을 사용하기 때문에 안전하게 전송할 수 있습니다.
1. scp (가장 간단하고 직관적인 방법)
파일 한두 개를 빠르게 보낼 때 가장 좋습니다.
기본 문법 (현재 서버 ➔ 원격 서버로 보낼 때):
|
1 2 3 |
scp [옵션] [보낼_파일_경로] [원격_서버_계정]@[원격_서버_IP]:[받을_디렉토리_경로] |
파일 1개 보낼 때:
|
1 2 3 |
scp myfile.txt root@192.168.0.100:/var/www/html/ |
폴더전체 보낼 때:
|
1 2 3 |
sudo scp -rp /var/www/* root@원격_서버_IP:/var/www/ |
22 포트가 아닌 특정포트
|
1 2 3 |
scp -P 2222 myfile.txt root@192.168.0.100:/var/www/html/ |
1. rsync (대용량, 폴더 복사에 추천)
- 대용량 파일
- 폴더복사
- 이어받기
- 파일선택 가능
|
1 2 3 |
rsync [옵션] [보낼_파일_또는_폴더] [원격_서버_계정]@[원격_서버_IP]:[받을_디렉토리_경로] |
추천조함 -avzP
|
1 2 3 4 5 6 7 8 9 10 11 |
rsync -avzP myfolder/ root@192.168.0.100:/var/www/html/ * -a : 권한, 소유자, 타임스탬프 등 보존 (아카이브 모드) * -v : 진행 상황을 화면에 자세히 표시 * -z : 데이터를 압축해서 전송 (속도 향상) * -P : 전송 중 끊기면 **이어받기** 가능 + 진행률(%) 표시 * **SSH 포트가 다를 때 (-e 옵션 사용):** ```bash rsync -avzP -e 'ssh -p 2222' myfolder/ root@192.168.0.100:/var/www/html/ |
💡 팁: 반대로 원격 서버에 있는 파일을 현재 서버로 가져오고 싶다면?
|
1 2 3 4 |
# 원격 서버의 파일을 현재 서버의 현재 디렉토리(.)로 가져오기 scp root@192.168.0.100:/var/www/html/target.txt . |
