개발을 진행할 때 종종 배포 인스턴스에 들어가서 로그 파일 등을 다운로드 받거나 외부에서 파일을 올려야 하는 경우가 종종 있다. 물론 여러가지 서버 관리 Tool 을 사용해서 편하게 해당 동작을 할수도 있지만 간단한 Bash shell 만을 이용해서 linux scp 명령으로 서버 파일을 로컬 pc로 다운 또는 업로드를 할 수 있다.
scp 기본 옵션
간단하게 bach shell에서 scp 옵션을 살펴보면 몇가지가 있다.
$ scp /?
usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port]
[-S program] source ... target
위 옵션 설명만 보면 바로 와닿지는 않는다. 사용법을 다시 정리해 보면
scp [옵션] [디렉터리 이름] [원격지_id]@[원격지_ip]:[보낼 경로]
예) scp -r testfolder root@192.168.xxx.xxx:/tmp/testclient (-r은 recursive하게 복사)
몇가지 주요 옵션은 다음과 같다.
r | 디렉토리 내 모든 파일/디렉토리 복사 | scp -r |
p (소문자) | 원본 권한 속성 유지 복사 | scp -p |
P (대문자) | 포트 번호 지정 복사 | scp -P [포트번호] |
c (소문자) | 압축 복사 | scp -c |
v | 과정 출력 복사 | scp -v |
a | 아카이브 모드 복사 | scp -a |
실제 scp 동작 예시
ssh port 9999 로 설정되어있는 서버 계정 home 밑의 .viminfo 파일을 로컬 PC 의 현재 디렉토리로 복사
xxx@DESKTOP-GH94F8C MINGW64 /y/Shared/Document
$ scp -P 9999 kindlove@xxx.30.1.xx:~/.viminfo .
kindlove@xxx.30.1.xx's password:
.viminfo 100% 6599 67.2KB/s 00:00
현재 로컬 PC 디렉토리의 VSCode.txt 파일을 ssh port 9999 로 설정되어있는 서버의 계정 home 밑으로 파일 업로드
xxx@DESKTOP-GH94F8C MINGW64 /y/Shared/Document
$ scp -P 9999 ./VSCode.txt kindlove@xxx.30.1.xx:~/
kindlove@xxx.30.1.xx's password:
VSCode.txt 100% 44 1.0KB/s 00:00
-- The End --
'OS > Linux' 카테고리의 다른 글
[Ubuntu] GUI 모드 설정/해제 방법 (0) | 2022.01.02 |
---|