네트워크를 건너 파일을 복사 scp

변주한·2022년 8월 31일
0

scp?

  • secure copy의 줄임말로 ssh를 이용하여 네트워크로 연결된 호스트간에 파일을 주고받는 명령어

  • 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 명령어

  • ssh와 동일한 22번 포트와 identity file을 사용해서 파일을 송수신하기 때문에 안정된 프로토콜

scp 파일 전송

1. 로컬 -> 원격

파일을 보내봅시다!

scp [옵션] [파일명] [원격id]@[원격host]:[받는 위치]

[root@localhost ~]# scp /home/ju/file han@99.99.123.123:/home/han

찬찬히 살펴보면

scp 명령어를 통해

/home/ju/file99.99.123.123/home/han 으로 보내는 겁니다.

이렇게 진행했을 때, han@이라는 부분 덕분에(?) 비밀번호만 물어봅니다 (개인키 설정을 했다면 바로 시작됩니다)

살짝쿵 비밀번호 입력하면 전송이 시작됩니다.

그렇다면 han@ 이 없다면 usernamepassword 입력 모두 물어보기 때문에 입력하고 scp 진행하면 됩니다.

2. 원격 -> 로컬

다른곳에서 파일을 받아보겠습니다.

scp [옵션] [원격id]@[원격host]:[원본 위치] [받는 위치]

[root@localhost ~]# scp ju@12.12.13.13:/home/ju/file /home/han

ㅎ..
로컬 -> 원격 정확히! 반대입니다.

3. 원격 -> 원격

솔직히 이거 몰라서 1번 2번을 반복했습니다...
그래요 멍청하면 손가락이 고생입니다 그래도 알았으면 됐잖아요

scp [옵션] [원격id1]@[원격host1]:[원본 위치] [원격id2]@[원격host2]:[받는 위치]

[root@localhost ~]# scp ju@12.12.13.13:/home/ju/file han@99.99.123.123:/home/han

[원격지_id]@[원격지_ip_1]:[원본 위치] : 복사 원본 서버명과 서버 경로를 입력해주고

[원격지_id]@[원격지_ip_2]:[받는 위치] : 복사 대상 서버명과 서버경로

자기 PC를 통해서 통신을 중계하는 형식이기 때문에 시간이 지체될 수 있습니다

효율적인 부분은 해당 PC나 서버에 접속하여

  • scp 원격 -> 로컬

  • scp 로컬 -> 원격

진행하면 됩니다.

scp 옵션

지금까지 살펴본 명령어에는 [옵션] 이 있었는데 사용을 안했습니다. 일단 기본적인 단건 복사를 위주로 살펴보았고
좀더 상세한 옵션을 쓰면 폴더 복사라든가 압축복사(전송)이 가능하기에 해당 내용 복사해 두시면 좋을거에요~

명령어옵션설명
scp -rrrecursive 디렉토리 및 하위 모든 파일 복사
scp -PP(대문자)원본 속성값 복사
scp -p 포트번호p(소문자)포트 번호 지정 복사
scp -cc(소문자)압축하여 복사
scp -vv복사 과정을 출력
scp -aa아카이브 모드로 복사

4. 로컬 -> 로컬

... 이걸 보고 있다면 뭔가 이상하지 않은가요? ㅋㅋㅋ
그렇습니다 우리에겐

cp

라는 명령어가 있습니다. 사용하시죠!

나중에 정리 해놓겠습니다.

(+)여러 개의 파일 전송

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


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

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

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

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


scp [옵션][원격지_id]@[원격지_ip]:[원본 위치 파일][원본 위치 파일] [받는 위치]
scp root@192.168.159.129:"/tmp/testclient/testfile2 /tmp/testclient/testfile3" /tmp

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

scp mint@host:.tmp/*.log /tmp/
와일드 카드를 써서 파일명 끝이 .log인 파일을 모두 복사

scp -r mint@host:/tmp/results/ /tmp/
-r 옵션으로 디렉터리를 재귀적으로 복사, 복사 원본 경로로 디럭터리 지정

profile
늦었지만 꾸준히

0개의 댓글