행궁동 데이터 엔지니어

반응형

SCP

Secure Copy의 약자로 SSH [1]를 이용해 네트워크로 연결된 호스트 간에 안전하게 파일을 주고받을 수 있는 명령어

 

명령어 사용방법

Usage : scp [옵션] [Source 경로] [Target 경로]

  • 아래 3가지 방법으로 로컬과 원격지 간에 자유로운 파일 전송 가능
  • # 로컬 -> 원격지 
  • scp 전송할파일 유저명@네트워크주소(IP주소):목적지경로
  • # 원격지 -> 로컬
  • scp 유저명@네트워크주소(IP주소):전송할파일 목적지경로
  • # 원격지 -> 원격지 
  • scp 유저명@네트워크주소(IP주소):전송할파일 유저명@네트워크주소:목적지경로

옵션 종류

  • -r : 재귀적으로 폴더의 모든 내용을 복사, 폴더를 복사할 때 사용하는 옵션
  • -P : ssh 포트를 지정하는 옵션
  • -i : ssh 키파일과 같은 identity file의 경로를 지정하는 옵션
  • -v : verbose 모드로 상세내용을 보며 디버깅을 할 때 사용
  • -p : 파일의 수정 시간과 권한 유지

 

예제 (원격지 -> 로컬 파일 전송, AWS EC2에서 로컬로 다운로드하는 예제입니다)

scp -i bus.pem -r ubuntu@네트워크주소:~/data busdata

  • ubuntu 계정의 홈디렉터리에 있는 /data 폴더를 로컬의 busdata 폴더로 전송하는 예제
  • -i : identity file 지정 위에서는 bus.pem 이 indentify file
  • -r : 폴더를 복사할 때 사용하는 옵션

 

예제 실행 결과

  • [아래] 원격지의 전송하려는 폴더와 파일들
  • ~/data는 /home/ubuntu/data와 동일한 경로

  • [아래] scp -i bus.pem -r ubuntu@네트워크주소:~/data busdata 명령어 실행 결과
  • 원격지의 data 폴더가 C:\Users\menth\Desktop\busdata에 복사됨

  • [아래] 복사한 data 폴더의 내용 확인 결과 정상적으로 복사된 것 확인 가능
  • 만약 scp 명령어에서 -p 옵션을 사용하면 파일의 최종 수정시간을 copy완료 시간이 아닌 원격지 파일의 수정시간과 동일하게 복사 가능

복사가 완료된 모습(-p 미적용) 

  • [아래] -p 옵션으로 복사한 모습
  • 원격지 원본 파일의 수정시간이 유지됨

복사한 파일의 수정시간이, 원격지의 파일 수정시간과 동일

1. 군옥수수님 블로그, ssh 란, https://baked-corn.tistory.com/52
2. TWpower's Tech Blog, [Linux] scp를 이용해 로컬과 원격에 파일 전송하기, https://twpower.github.io/138-send-file-using-scp-command
3. linux.ide.net, scp man page, https://linux.die.net/man/1/scp
4. 제타위키, 리눅스_scp_사용법, https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_scp_%EC%82%AC%EC%9A%A9%EB%B2%95
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band