Intro

이번에는 원격(게스트) PC와 파일을 주고 받는 SCP 에 대해 알아보겠습니다.


SCP 란?

SCP 란 시큐어 카피(Secure Copy Protocol)의 약자입니다.
로컬 호스트와 원격 호스트 간 혹은, 로컬 호스트와 로컬 게스트 간 파일을 전송하는 수단입니다.

두 머신 간에는 네트워크로 연결이 되어있어야 합니다.



SCP 사용법

SCP를 통해서는 파일을 보낼 수도 있고, 받아올 수도 있습니다.

파일 전송하기

1
scp 파일명 원격지계정@원격지IP:/경로명

아래는 예시입니다.

1
2
3
4
5
scp /User/test.txt root@127.0.0.1:/temp/example.txt

-> 로컬 User 디렉토리에 있는 test.txt 파일을
-> 원격지(127.0.0.1) 머신의 temp 디렉토리에
-> example.txt 라는 이름의 파일로 저장


여러 파일 전송하기

여러 파일을 전송할 때에는 파일명을 나열하면 됩니다.

1
scp /User/test1.txt /User/test2.txt root@127.0.0.1:/temp/


디렉토리 전송하기

여러 파일을 포함하는 디렉토리를 전송할 때에는 -r 옵션을 사용합니다.

1
scp -r /User/texts root@127.0.0.1:/temp/texts


파일 받아오기

1
scp 원격지계정@원격지IP:/보낼파일경로명 받을경로명

아래는 예시입니다.

1
2
3
4
ex. scp root@127.0.0.1:/temp/example.txt /User/test.txt

-> 원격지의 temp 디렉토리에 있는 example.txt 파일을
-> 로컬의 User 디렉토리에 test.txt 라는 이름으로 저장


백그라운드에서 파일 전송

1
$ nohup scp /User/file.ext root@127.0.0.1:/temp/text > nohup.out 2>&1 &

하지만 전송 작업이 너무 오래걸릴 경우 세션의 제한 시간이 지나 세션이 종료되어버릴 수 있다.

그리고 비밀번호가 있는 경우엔

1
2
3
4
$ nohup scp /User/file.ext root@127.0.0.1:/temp/text > nohup.out 2>&1
$ 이후 ctrl + z로 일시중단
$ bg
$ nohup scp /User/file.ext root@127.0.0.1:/temp/text > nohup.out 2>&1

Reference

SCP 란? : https://ko.wikipedia.org/wiki/시큐어_카피#cite_note-1
SCP 란? : https://wlsvud84.tistory.com/11
SCP로 파일 주고받기 : https://wlsvud84.tistory.com/11
SCP로 파일 주고받기 : https://cheershennah.tistory.com/198
백그라운드 전송 : https://seokhyun2.tistory.com/19#google_vignette
백그라운드 전송 : https://shlee1990.tistory.com/1067