secure copy의 줄임말로 ssh를 이용하여 네트워크로 연결된 호스트간에 파일을 주고받는 명령어
원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 명령어
ssh와 동일한 22번 포트와 identity file을 사용해서 파일을 송수신하기 때문에 안정된 프로토콜
파일을 보내봅시다!
scp
[옵션]
[파일명]
[원격id]@[원격host]:[받는 위치]
[root@localhost ~]# scp /home/ju/file han@99.99.123.123:/home/han
찬찬히 살펴보면
scp 명령어를 통해
/home/ju/file
를 99.99.123.123
의 /home/han
으로 보내는 겁니다.
이렇게 진행했을 때, han@
이라는 부분 덕분에(?) 비밀번호만 물어봅니다 (개인키 설정을 했다면 바로 시작됩니다)
살짝쿵 비밀번호 입력하면 전송이 시작됩니다.
그렇다면 han@
이 없다면 username과 password 입력 모두 물어보기 때문에 입력하고 scp 진행하면 됩니다.
다른곳에서 파일을 받아보겠습니다.
scp
[옵션]
[원격id]@[원격host]:[원본 위치]
[받는 위치]
[root@localhost ~]# scp ju@12.12.13.13:/home/ju/file /home/han
ㅎ..
로컬 -> 원격
정확히! 반대입니다.
솔직히 이거 몰라서 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 -r | r | recursive 디렉토리 및 하위 모든 파일 복사 |
scp -P | P(대문자) | 원본 속성값 복사 |
scp -p 포트번호 | p(소문자) | 포트 번호 지정 복사 |
scp -c | c(소문자) | 압축하여 복사 |
scp -v | v | 복사 과정을 출력 |
scp -a | a | 아카이브 모드로 복사 |
... 이걸 보고 있다면 뭔가 이상하지 않은가요? ㅋㅋㅋ
그렇습니다 우리에겐
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 옵션으로 디렉터리를 재귀적으로 복사, 복사 원본 경로로 디럭터리 지정