IT_World

[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기) 본문

OS/Ubuntu

[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기)

engine 2021. 6. 2. 10:29

환경 os : Linux Ubuntu 18.64

scp

scp: secure copy (remote file copy program)의 줄임말로 ssh를 이용해 네트워크로 연결된 호스트 간에 파일을 주고받는 명령어 리모트 서버에 파일을 전송하거나, 리모트 서버 내의 파일을 복사하고 싶을 때 사용한다.

 

로컬 리모트 (보내기)

리모트 로컬 (가져오기)

 리모트 리모트 (다른 호스트끼리 전송) 로 복사가 모두 가능

ssh를 이용하기 때문에 password를 입력하거나 ssh 키파일과 같은 identity file을 이용해 파일 송수신이 가능

 

Option(옵션)

-r: 어떠한 것을 정의할 때 자기 자신을 참조해 모든 폴더들을 복사한다.

-P : ssh 포트를 지정하는 option (: -P 8080 )

-i : ssh keyfile과 같은 identity filepath를 지정하는 option

-v : verbose mode 상세내용을 보며 debugging 할 때 사용

-p : file 수정 시간과 권한을 유지

 

기본

scp <upload_path> <username>@<IP>:<download_path>

upload_path :기존 파일이 존재하는 경로를 입력

username : 사용자 계정 아이디를 입력

IP : 복사하려고 하는 목적지 IP주소 또는 도메인 이름을 지정

download_path : 파일이 생생길 원하는 목적지의 파일 저장 경로를 지정

 

예제

1.Local → Remote

$ scp </path/send.txt> <usr>@<IP주소>:</download/path/>

$ scp ~/send.txt usr@192.168.0.0:/home/usr

 

-i 옵션 (identity file을 지정해서 사용)

$ scp -i ~/.ssh/usr-private-server ~/send.txt usr@192.168.0.0:/home/usr

-r 옵션 (폴더 복사)

$ scp -r ~/test_folder/ usr@192.168.0.0:/home/usr

-P 옵션(port 지정)

$ scp -P 6006 ~/send.txt usr@192.168.0.0:/home/usr

 

2. Remote → Local

$ scp <user>@<IP주소>:</path/send.txt>

$ scp usr@192.168.0.0:/home/usr/send.txt /users/user

 

-i 옵션 (identity file을 지정해서 사용)

$ scp -i ~/.ssh/usr-private-server usr@192.168.0.0:/home/usr/send.txt /users/user

-r 옵션 (폴더 복사)

$ scp -r usr@192.168.0.0:/home/user/send_folder /path/user

-P 옵션(port 지정)

$ scp -P 6006 usr@192.168.0.0:/home/usr/send.txt /path/user

 

3. Remote(source) -> Remote(target)

$ scp <user>@<IP주소>:</path/send.txt> <user>@<IP주소>:</path/send.txt>

 

+참조 디렉터리 내 파일을 모두 이동할 경우

경로 마지막에 *를 넣으면 모두 다 이동된다.

$ scp /path/* <usr>@<이동할 IP 주소>:</path/>

 

Comments