기타

SCP를 사용해서 서버간 파일 전송하기

dhk1349 2022. 10. 25. 02:21

리눅스 계열 OS에서는 scp라는 커맨드를 사용해서 컴퓨터끼리 파일 교환이 가능합니다.

(물론 윈도우OS에서도 가능하긴 합니다.)

 

커맨드는 기본적으로 cp 커맨드와 같은 동작 방법을 가진다고 생각하면 됩니다. 

 

cp 커맨드 예시

일단 cp(복사) 커맨드를 사용하는 법을 간단하게 말씀드리면 아래 처럼 사용할 수 있습니다.

$ cp {복사할 파일} {복사할 위치}

 

cp가 같은 기기내에서 파일을 복사하는 것이라면 scp는 다른 기기로부터 파일을 복사해 올 때 사용하는 커맨드입니다. 

scp 커맨드는 아래처럼 사용하실 수 있습니다. 

$ scp -P {포트 번호} {복사할 파일} {복사할 위치}

 

 

scp 커맨드 예시 (로컬→원격)

이 때 복사할 파일이 로컬(내 기기)여도 무관하고, 복사할 위치가 로컬이어도 상관 없습니다. 

만약 복사할 파일이 로컬에 있고, 해당 파일을 다른 곳으로 보내는 것이 목적이라면

$ scp -P {복사 받을 기기의 포트번호} {로컬에서 복사할 파일 경로} {목적지의 계정}@{목적지의 ip}:{목적지의 절대 경로}

이런 식으로 작성해주시면 됩니다!

 

 

scp 커맨드 예시 (원격→로컬)

반대로 복사해 올 파일이 원격에 있고 내가 파일을 가져오는 경우라면 

$ scp -P {복사 할 기기의 포트번호} {복사할 파일 서버의 계정}@{복사할 파일 서버의 ip}:{복사할 파일의 절대 경로} {목적지(로컬)의 경로}

이런 식으로 작성하시면 됩니다!

 

 

폴더를 복사해야하는 경우

만약 복사해 올 대상이 파일이 아니라 폴더라면 -P {복사할 기기의 포트번호} 뒤에 -r 을 추가로 쓰시면 됩니다!

만약 원격 위치에 있는 기기에 포트가 뚫려있지 않다면 scp가 정상 작동하지 않을 것입니다.

그리고 당연하지만 원격에 있는 기기의 비밀번호와 정확한 절대 경로를 알고 있어야만 복사해오거나 전송할 수 있습니다!