IT_World
[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기) 본문
환경 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 file의 path를 지정하는 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/>
'OS > Ubuntu' 카테고리의 다른 글
shell 명령어 ls 날짜순 정렬 최신 / 오래된 파일 정렬 (0) | 2021.09.17 |
---|---|
[linux/shell] alias vi~/.bashrc source ~/.bashrc (0) | 2021.09.11 |
[package]requirements.txt 패키지 관리 및 list freeze 정리 (0) | 2021.05.25 |
[Linux] tree Command(트리 명령)사용 (0) | 2021.05.23 |
[docker] 도커 이미지(Image)와 컨테이너(Container) 차이 (0) | 2021.05.11 |