본문 바로가기
서버/리눅스

[Linux] 파일 전송 scp 명령

by 코딩히어로 2022. 3. 31.
728x90

리눅스에서 파일을 옮길 때 total command 같은 FTP 프로그램을 사용하여

옮기는 방법도 있지만 리눅스에서는 이보다 간단하게 명령어 한 줄만으로

다른 서버에 파일을 가져오고 보내는 것이 가능합니다.

 

이번 포스팅은 이러한 명령어인 scp에 대해 정리하도록 하겠습니다.

 

scp는 ssh 원격 접속 프로토콜을 기반으로 만들어진 파일 전송 프로토콜입니다.

scp는 SecureCopy의 약자로 원격지에 있는 파일 및 디렉터리를 가져오거나 원격지로 보낼 때 사용합니다.

scp는 네트워크가 연결된 환경에서 22번 포트와 identify file을 사용해서

파일을 송수신하기 때문에 보안적으로도 안정된다고 볼 수 있습니다.

scp 명령은 단일 파일 및 디렉토리 전체를 옮길 수도 있으므로 알아두면 정말 유용합니다.

 

 

하나의 파일을 전송


명령어 : scp [option] [filename] [원격지 사용자]@ [원격지 IP]:[폴더 트리 위치]

 

scp test_log root@14.63.111.111:/data/logs

 

위 예시에서 볼 수 있듯이 test_log 파일을 14.63.111.111 주소의 서버에 root 사용자 권한으로 전달합니다.

전달할 위치는 /data/logs로 전달하고 위 문구를 실행하면 비밀번호 입력을 해야 하는데

해당 root 사용자의 접속 비밀번호를 입력하면 됩니다.

 

두 개 이상의 파일을 한 번에 전송하려고 하면 보낼 파일명을 전부 적어주면 됩니다.

scp test_log test_file root@14.63.111.111:/data/logs

 

 

폴더 통째로 전송


단일 파일이 아닌 파일들을 포함한 폴더 자체를 전송하는 방법은 다음과 같습니다.

 

명령어 : scp [option] [폴더 이름] [원격지 사용자]@[원격지 IP]:[폴더 트리 위치]

 

scp -r test_dir root@14.63.111.111:/data/logs

 

폴더를 전송할 때에는 단일 파일을 전송할 때와는 다르게 옵션에 -r을 넣어줍니다.

-r 옵션을 사용함으로써 디렉터리 내에 하위 파일들까지 한 번에 전송이 가능합니다.

 

 

 

하나의 파일을 가져오기


이번에는 반대로 원격지에 있는 파일을 가져오기 위한 방법입니다.

전송할 때와 다른 점은 맨 뒤쪽에 받는 위치에 원본 파일의 위치를 함께 써야 한다는 점입니다.

 

명령어 : scp [option] [filename] [원격지 사용자]@ [원격지 IP]:[원본 파일 위치] [폴더 트리 위치]

 

scp test_log root@14.63.111.111:/data/logs /log

 

위와 같이 파일의 위치 부분에 파일을 가져올 원본 파일 위치를 추가시켜주기만 하면 됩니다.

폴더를 가져오는 방식도 전송하는 방식에서 원본파일 위치만 추가하면 됩니다.

728x90
반응형

'서버 > 리눅스' 카테고리의 다른 글

[Linux] 마운트 정보 findmnt 명령어  (3) 2022.03.31
[Linux] 압축 tar 명령어  (4) 2022.03.31
[Linux] File Descriptor란?  (1) 2022.02.11
[Linux] 방화벽 Firewall  (8) 2022.02.08
[Linux] 원격 SSH 접속 Putty  (2) 2022.01.12

댓글