Server

[Linux] 윈도우(로컬) > 서버(리눅스) 파일 전송 / 서버(리눅스) > 윈도우(로컬) 파일 전송

페루나쵸 2023. 11. 10. 17:17

1. 윈도우(로컬) > 서버(리눅스) 파일 전송 

 

🔶SCP

  • ssh 원격 접속 프로토콜을 기반으로 한 SecureCopy(scp)의 약자로서 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜 
  • ssh와 동일한 22번 포트와 identity file을 사용해서 파일을 송수신하기 때문에 안정된 프로토콜
  • secure copy의 줄임말로 ssh를 이용하여 네트워크로 연결된 호스트간에 파일을 주고받는 명령어 

 

구문 : # scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

 

 

여기서 옵션이란 -r , -p 등을 얘기한다.

* 내가 선택한 디렉토리 하위 모든 디렉토리를 보내고 싶은경우 -r을 써주면 된다.

 

 


 

아래 내용을 간단하게 정리하자면

 

1. 내가 보내고자하는 파일이 있는 폴더 위치 복사

 

2. cmd 오픈 

 

3. 앞에 cd붙이고 복사한 폴더위치 붙여넣기

 

*전송파일이 C:\Users\Downloads\test.jar 파일, 사용자가 root, ip가 000.00.00.000, lib이라는 폴더에 넣고 싶은경우

4. scp C:\Users\Downloads\test.jar root@000.00.00.000:/home/lib/.

 

하고 서버에 해당 위치로 들어가보면 파일이 있을 것

앞에 주소없으면 No such file or directory나옴

 

 


 

파일질라에서 파일을 자꾸 지웠다가 다시 넣었다가 하니깐

디렉토리에 대한 권한이 사라졌다.

그래서 윈도우에서 서버로 파일을 전송해야 했다.

 

아래는 방법이다.

 

윈도우 + r 을 누르면 빠른 실행이 되는데 cmd 라고 치고 확인을 누르자

 

 

 

그러면 이런 화면이 뜨는데

 

 

이렇게 켜진 cmd는 놔두고 내가 전송하려는 파일이 있는 폴더로 들어가보자

 

C:\Users\{user_name}\.m2\전송하려는 파일

아마 폴더는 위의 주소랑 비슷한 곳에 있을 것인데

상단의 주소창을 복사해서

cmd창 '>' 옆에 붙여넣자, 앞에 cd를 붙여주고

 

cd C:\Users\{user_name}\.m2\전송하려는 파일이 있는 폴더

 

이렇게 말이다.

 

그러면 해당 폴더로 들어가지는데  

 

scp 전송파일.jar 사용자@ip:/home/디렉토리/.

 

이렇게 적으면 전송파일.jar가 서버에 내가 선택한 디렉토리 밑에 들어가있을 것!

 

파일을 보내고 푸티 등으로 접속해서 파일이 잘 들어가있는지 확인해보면 예쁘게 들어가 있을 것!

 

 

만약 잘 못 넣은 경우 rm 이라는 명령어로 삭제하면 된다.

rm test.jar

 

 

 

 

2. 서버(리눅스) > 윈도우(로컬) 파일 전송

 

C:\Users>cd Downloads 

C:\Users\Downloads>scp root@ip:/경로/파일/* C:\Users\Downloads[로컬경로]

구문 : # scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

 

구문은 비슷

cmd 키고, 내가 다운받을 로컬 주소로 들어가기

나는 다운로드 파일에 다운 받을 예정이라 해당 주소를 저렇게 했다.

그리고 scp 원격지_id@원격지_ip:받는 위치

절대 경로로 적으면 되고 나는 파일 밑에 모든걸 다운받기 위해서 *를 사용했고, 특정 파일만 다운받고 싶으면 따로

쓰면 될 것 같다.

 

어렵다면, 예를 들어주겠다!

* 저 옵션은 검색해서 필요하면 사용하면 되고 필요없으면 안써도 된다.

 

아무 문서를 열고 왼쪽에 보면 내 피시 > 로컬 디스크가 있다

이렇게 하나씩 열어가면서 내가 원하는 파일로 들어가고 상단을 보면서 cmd에 차근 차근 넣으면 된다.

아니면 복사해서 cd 복사한 주소를 입력해도 된다.

 

 

자 그러면 내가 복사한 주소가 나오게 된다.

난 다운로드니까 아래처럼 나오고

이제 내 서버 아이피가 111.111.111.11 이라고 하고, root 계정으로 들어갔다고 했을때,

그리고 내가 원하는 파일이 /home/app에 있는 test.txt인 경우

(이 주소는 절대주소다. 서버에 들어가서 cd 절대경로 쳤을 때 바로 이동하는 그 주소!)

C:\Users\Downloads>scp root@ 111.111.111.11:/home/app/test.txt . (뒤에 점을 붙여야하는것같다) 

아마 저 점을 붙이면 현재 다운로드 경로에 넣어주세요 인 것 같고

만약 내가 현재 지정한 디렉토리가 아니라 다른 디렉토리에 넣고 싶은 경우에는 저 .을 빼고 

path를 입력하면 됨

 

아래는 예시다

 

C:\Users>scp root@ 111.111.111.11:/home/app/test.txt C:\Users\Downloads

 

리눅스에서 pwd 치면 현재 경로나오니깐 그거 복사해서 사용하시면 됩니다~

오랜만에 scp쓰는데 헷갈려서 조금 설명 붙입니다.