운영체제/Linux

[Ubuntu] scp 사용법 - 서버간 데이터 전송하기 (file, directory)

쌍쌍바나나 2016. 8. 2. 22:00
반응형

들어가며

  서버에서 작업을 하다보면 나의 로컬에 있는 데이터를 서버로 전송하거나, 서버에 있는 데이터를 내 로컬로 전송을 해야 하는 경우가 있습니다. 그럴때는 Ubuntu에서 제공하는 기본 커맨드인 scp를 사용하시면 됩니다.  scp는 Security CoPy의 약자로 보안이 보장된 복사라고 할 수 있습니다. 보안이 보장 되었다는 말은 무엇이냐, 우리가 ssh를 통해 서버에 접속을 하면 22번 포트가 open이 되어 있어야 합니다. scp는 ssh와 동일한 포트를 사용하여 SSL기반의 세션 보안 프로토콜을 사용하기 때문에 기존에 사용하던 FTP와 다르게 보안측면에서 뛰어납니다.

$ scp <source_path> <username>@<ip>:<dest_path>

  • source_path : 내가 복사하고자 하는 파일이 경로를 입력합니다.
  • username : 사용자 계정 아이디를 입력하시면 됩니다.
  • ip : 복사하려고 하는 목적지 IP주소 또는 도메인 이름을 지정합니다.
  • dest_path : 복사하려고하는 목적지의 파일 저장 경로를 지정합니다.

파일을 복사하는 방법

$ scp /home/banana/test.txt lee@192.168.1.19:/home/lee/test.txt

  위의 예를 보면 /home/banana에 있는 test.txt의 파일을 192.168.1.19의 계정 lee의 /home/lee/test.txt로 복사를 한다는 말과 동일합니다. 여기서 주의해야할 사항은 192.168.1.19의 lee계정의 비밀번호를 알아야 합니다. 

폴더를 복사하는 방법

$ scp -r /home/banana lee@192.168.1.19:/home/lee

  기존 위에 파일을 복사하는 방법과 달라진점은 source_path, dest_path가 모두 경로가 되었다는 점과, scp의 파라미터로 -r을 넘겨줬습니다. -r은 mv에서도 많이 사용했듯이 recursive하게 모든 내용을 복사하겠다는 내용을 뜻합니다. 

AWS의 s3에 복사하는 방법

$ scp -r -i public_key.pem /home/banana lee@192.168.1.19:/home/lee

  아마존 같은 경우에는 S3에 접속 할 수 있는 key를 주게 되는데요. 확장자가 *.pem으로 끝나는 파일입니다. -i의 옵션과 함께 identity file을 넘겨주시면 됩니다. 

반응형