관리 메뉴

Value Creator의 IT(프로그래밍 / 전자제품)

우분투 파일 복사 _ scp 사용법 본문

카테고리 없음

우분투 파일 복사 _ scp 사용법

valuecreatort 2023. 3. 29. 10:29
반응형

 

ssh 원격 접속 프로토콜을 기반으로 한 SecureCopy(scp)의 약자로서 원격지에 있는 파일과 

디렉터리를  보내거나 가져올 때 사용하는 파일 전송 프로토콜입니다.

네트워크가 연결되어 있는 환경에서 ssh와 동일한 22번 포트와 identity file을 사용해서

파일을 송수신하기 때문에 보안적으로도 안정된 프로토콜이라고 할 수 있겠습니다.

 

 

 

자 그럼 본론으로 들어가서 사용하는 방법과 형식에 대해서 알아보겠습니다.

 

 

 

Local ( 로컬 ) ----> Remote (원격지)

1. 단일 파일을 원격지로 보낼 때.

 

구문 : # scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

 

           scp testfile2 root@192.168.159.129:/tmp/testclient  

 

현재 위치의 testfile2를 원격지 192.168.159.129:/tmp/testclient 경로에 파일을 전송한 상태입니다.

 

실제 원격지 ( 192.168.159.129:/tmp/testclient ) 경로에 testfile2 가 잘 전송된 것을 확인할 수 있습니다.

 

 

 

2. 복수의 파일을 원격지로 보낼 때.

 

구문 : # scp [옵션] [파일명 1] [파일명 2] [원격지_id]@[원격지_ip]:[받는 위치]

    

           scp tesfile1 testfile2 root@192.168.159.129:/tmp/testclient

 

현재 위치의 tesfile1 testfile3을 동시에 원격지 192.168.159.129:/tmp/testclient 경로에 파일을

전송한 상태입니다.

 

실제 원격지 ( 192.168.159.129:/tmp/testclient ) 경로에 tesfile1 testfile3 파일이 잘 전송된 것을 확인할 수 있습니다.

단일로 보내건 복수로 보내건 보내는 구문에는 크게 차의가 없이 파일명 뒤에 한 칸 띄우고 파일명을 넣어주시면

동일하게 전송이 가능합니다.

 

 

3. 여러 파일을 포함하고 있는 디렉터리를 원격지로 보낼 때. ( -r 옵션을 사용합니다 )

 

구문 : # scp [옵션] [디렉터리 이름] [원격지_id]@[원격지_ip]:[보낼 경로]

 

           scp -r testgogo root@192.168.159.129:/tmp/testclient

 

현재 위치의 여러 파일을 포함하는 testgogo라는 디렉터리를 -r 옵션을 부여하여 

원격지 192.168.159.129:/tmp/testclient 에 전송한 상태입니다.

 

이처럼 -r 옵션을 사용하면 보내고자 하는 디렉터리의 하위 폴더 및 파일까지 동시에 전송이 가능합니다.

 

추가적인 옵션을 살펴보면 다음과 같습니다.

r 디렉토리 내 모든 파일/디렉토리 복사 scp -r
p (소문자) 원본 권한 속성 유지 복사 scp -p
P (대문자) 포트 번호 지정 복사 scp -P [포트번호]
c (소문자) 압축 복사 scp -c
v 과정 출력 복사 scp -v
a 아카이브 모드 복사 scp -a

필요한 부분과 상황에 맞추어 옵션을 부여해서 사용이 가능하므로 적절하게 사용합시다.

 

 

 

 

 

Remote ( 원격지 ) ---> Local ( 로컬 )


1. 단일 파일을 원격지에서 로컬로 가져올 때

 

구문 : # scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치] [받는 위치]

 

           scp root@192.168.159.129:/tmp/testclient/testfile2 /tmp

 

현재 로컬에서 원격지 192.168.159.129:/tmp/testcleint/testfile2 파일을 로컬의 /tmp 경로로 받은 상태입니다.

받는 것도 보내는 구문과 크게 차의가 없어서 어렵지 않습니다.

 

로컬의 /tmp 경로에서 보면 정상적으로 testfile2 가 다운된 걸 확인할 수 있습니다.

 

 

 

2. 복수의 파일을 원격지에서 로컬로 가져올 때

 

구문 : # scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치 파일][원본 위치 파일] [받는 위치]

 

           scp root@192.168.159.129:"/tmp/testclient/testfile2 /tmp/testclient/testfile3" /tmp

           보낼 때랑 다르게 받을 때는 원격지 경로의 파일을 " " (큰따옴표)를 사용해서 묶어줍니다.

 

로컬의 /tmp 경로에 원격지의 testfile2와 testfile3을 동시에 보낸 다운로드한 상태입니다.

보내기와 다르게 구문의 차의 점은 다운로드할 원격지의 원본 경로를 " " ( 큰따옴표 )로 묶어주는 거 기억합시다.

 

로컬의 /tmp 경로에서 보면 정상적으로 testfile2, testfile3 파일이 다운된 걸 확인할 수 있습니다.

 

 

 

3. 여러 개의 파일을 포함하는 디렉터리 원격지에서 로컬로 가져올 때

 

구문 : # scp [옵션] [원격지_id]@[원격지_ip]:[디렉터리 위치] [받을 경로]

 

           scp -r root@192.168.159.129:/tmp/testclient/testgogo /tmp

 

보낼 때와 마찬가지로 가져올 때도 -r 옵션을 부여하여 디렉터리에 포함되어 있는 여러 파일과 디렉터리를 

동시에 다운 가능합니다.

 

정상적으로 로컬의 /tmp 경로에 여러 파일을 포함하는 testgogo라는 디렉터리가 잘 전송되었습니다.

보낼 때와 마찬가지로 옵션 적용은 동일하게 가능하기 때문에 옵션은 보내는 항목에서 참조해주시기 바랍니다.

반응형
Comments