728x90

용량이 큰 파일이나 폴더를 로컬에서 서버로, 혹은 서버에서 로컬로 전송할 일이 있다면 scpfilezilla를 활용하면 보다 짧은 시간 안에 전송이 가능하다.

 

1. 로컬에서 서버로 파일 전송할 때

- 일단 로컬의 cmd창을 켠다.

- 그리고 다음의 명령어를 입력한다.

scp [전송할 파일이 있는 로컬 위치] [서버의 내계정명@서버ip주소]:[파일을 전송 받을 서버 내 위치]

예를 들어

1) 전송할 파일이 file.txt

2) 전송할 파일이 있는 로컬 위치가 C:\Users\Desktop\Downloads\file.txt (로컬 환경은 윈도우라 가정)

3) 서버의 내 계정명이 rootname

4) 서버의 ip주소가 111.222.33.444

5) 파일을 전송 받을 서버 내 위치가 /home/way/to/file (서버 환경은 리눅스라 가정)

 

다음과 같은 상황이 주어진다 하자. 그럼 이렇게 명령어를 입력하여 실행하면 된다.

scp C:\Users\Desktop\Downloads\file.txt rootname@111.222.33.444:/home/way/to/file

Q. CMD창이 실행되는 현재 위치에 따라 전송할 파일이 있는 로컬 위치를 어떻게 달리 적어야 할까?

cmd창에 명령어를 실행하는 위치를 참고해 상대경로로 [전송할 파일이 있는 로컬 위치]를 적어도 되고, 절대경로로 적어도 무관하다.

 

예를 들어 cmd창에서 명령이 실행되는 위치가 앞쪽에 C:\Users\Desktop> 이라고 되어 있으면?

-> [전송할 파일이 있는 로컬 위치]는 C:\Users\Desktop\Downloads\file.txt 또는 Downloads\file.txt 라고 적으면 된다.

 

Q. 서버의 ip주소는 어떻게 알 수 있나요?

1) vscode와 같은 에디터를 통해 서버로 접속한다.

2) 서버의 터미널에 다음과 같은 명령어를 실행한다.

curl ifconfig.me

이 명렁어를 실행하면 ip주소만 덜렁 하나가 뜬다.

그것이 서버의 ip주소이다.

 

Q. 그리고 선택사항이지만 혹시나 본인이 사용하는 포트가 22번 포트가 아니라면 포트 번호도 알아야 한다.

포트 번호가 무엇인지는 확인해보자.

 

1) vscode를 켠다.

2) ctrl + shift + p 를 동시에 누른다.

3) 상단에 여러 실행가능한 항목들이 뜰텐데, 그중  Remote-SSH : Connect to Host ...   를 클릭한다.

4)  SSH 호스트 구성..  을 클릭한다.

5) 유저마다\다른\앞쪽주소\.ssh\config 를 클릭한다.

 

그럼 config 파일이 열리는데 아래와 같이 그동안 등록한 서버들에 대한 정보가 나온다. 아래는 그 중 한 서버 host정보만 캡쳐한 것이다.

서버 host 이름이 위와 같이 ip주소일 수도 있고 이름을 커스텀하여 따로 명령어(curl ifconfig.me)를 통해 ip주소를 알아내야할 수도 있다.

위의 캡쳐에 나온 정보가 내가 파일을 전송할 서버 host라고 하면 서버의 내 계정명은 root이고, 포트 번호는 2227이고, ip주소는 115.85.182.178인 것이다.

 

포트 번호 지정

포트 번호가 22번이 아닌 경우 scp 명령어가 조금 달라진다. 포트 번호가 1234라고 하자.

scp -P 1234 C:\Users\Desktop\Downloads\file.txt rootname@111.222.33.444:/home/way/to/file

그럼 이렇게 -P [포트번호]를 scp와 로컬 파일 위치 사이에 적어주어야 한다.

 

2. 서버에서 로컬로 파일을 전송할 때

이 경우에도 로컬의 cmd창을 켜서 scp명령어를 실행한다. scp 명령어는 항상 로컬의 프롬프트에서 실행한다.

# 포트번호가 따로 명시되지 않은 경우(default:22)
scp [서버의 내계정명@서버ip주소]:[전송할 파일이 있는 서버 내 위치] [파일을 전송 받을 로컬 위치]
# ssh/config 파일에 기재된 서버의 포트번호를 알 경우
scp -P [포트번호] [서버의 내계정명@서버ip주소]:[전송할 파일이 있는 서버 내 위치] [파일을 전송 받을 로컬 위치]

 

3. 다수의 파일 또는 폴더 전송

 

아래의 블로그 포스팅을 참고하면 좋다.

https://mesonia.tistory.com/142

 

파일전송 프로토콜 scp로 로컬에서 서버로 파일업로드, 서버에서 로컬로 파일 다운로드하기!

SCP(SecureCopy) ssh 원격 접속 프로토콜을 기반으로 한 SecureCopy(scp)의 약자로서 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜이다. 네트워크가 연결되어 있는

mesonia.tistory.com

 

728x90