본문 바로가기

운동하는 개발자/Linux

Linux(ubuntu) to Windows , Windows to Linux 파일 전송 (SCP)

728x90

나의 상황은 사설 아이피의 Windows 개발 PC와 공인 아이피의 리눅스 Linux 서버 간의 파일 교환이 필요한 상황이었다.

당연히 리눅스로는 공인아이피이기에 다양한 방법으로 전송이 가능하겠지만 내 피시로 다시 파일을 받아야 하는 경우엔 몇몇 방법으로는 불가능한 상황이었다. 때문에 찾아본 SCP

윈도우10이상부터는 디폴트로 설치되는 것 같았다.

사용법은 간단하다.
파일을 어디로 옮기고 싶든지 Windows에서 커맨드 창을 연다 (옮겨야 할 파일이 있는 경로에서 열면 더 편하다)

 

1. Windows to Ubuntu

scp -p [ssh포트] [Windows파일경로] [Ubuntu계정]@[Ubuntu IP]:[Ubuntu파일경로]

scp -P 3022 .\test.tar.gz user@222.111.222.111:/tmp/test.tar.gz

* 파일경로는 full path로 적어줘도 되고 "./"를 붙일 경우 cmd의 현재 경로기준이다.
* 리눅스 쪽에서도 동일한 파일명을 사용할 예정이면 :/tmp/ 까지만 적어줘도 가능하다
* 이 명령어를 입력하면 password를 물어보는데 리눅스 user의 password를 적어주면 된다
* 폴더채로 옮기고 싶은 경우 "-r" 명령어를 사용하면 된다 (scp -P 3022 -r ./tmp user@222.111.222.111:/tmp)
* 리눅스의 권한이 부족한 경로에는 복사할 수 없다 그래서 tmp폴더를 chmod 777로 권한을 풀어준 뒤 사용했다

2. Ubuntu to Windows

scp -P [ssh포트] [Ubuntu계정]@[Ubuntu IP]:[Ubuntu 파일경로] [Windows파일경로]

scp -P 3022 user@222.111.222.111:/tmp/test.csv '.\test.csv'

* 위와 동일하게 Windows에서 커맨드창으로 입력하되 파라미터의 순서가 다르다.
* 이때도 비번은 Ubuntu 계정의 비밀번호를 입력해 준다.
* C:\program files 같은 곳은 권한이 필요하기에 커맨드 창을 관리자 권한으로 실행해 줘야 옮길 수 있다.

너무 편하다 ㅠㅠ
끝.


 

728x90