1. scp command
scp(보안 복사) 명령은 네트워크를 통해 두 원격 시스템 간에 파일을 안전하게 전송하는 데 사용됩니다. 다음은 scp 명령을 사용하여 로컬 시스템에서 원격 시스템으로 파일을 전송하는 방법의 예입니다.
scp /path/to/local/file.txt remoteuser@remoteserver:/path/to/remote/directory
이 명령을 분석해 보겠습니다.
scp는 우리가 사용하는 명령입니다.
/path/to/local/file.txt는 전송하려는 로컬 파일입니다. 이것을 로컬 파일의 실제 경로로 바꿉니다.
remoteuser는 원격 시스템의 사용자 이름입니다. 이것을 실제 사용자 이름으로 바꾸십시오.
remoteserver는 원격 시스템의 호스트 이름 또는 IP 주소입니다. 이를 실제 호스트 이름 또는 IP 주소로 바꿉니다.
/path/to/remote/directory는 파일을 전송하려는 원격 시스템의 디렉토리입니다. 이것을 원격 디렉토리의 실제 경로로 바꾸십시오.
다음은 scp 명령의 출력 예입니다.
$ scp file.txt remoteuser@remoteserver:/home/remoteuser/files/
remoteuser@remoteserver's password:
file.txt 100% 143 0.1KB/s 00:00
이 예에서는 file.txt라는 파일을 /home/remoteuser/files/에 있는 원격 시스템으로 전송합니다. scp 명령은 원격 사용자의 암호를 묻는 메시지를 표시한 다음 전송 진행률을 표시합니다. 전송이 완료되면 파일이 성공적으로 전송되었음을 출력에 표시합니다.
2. scp command option
다음은 scp 명령 및 해당 출력과 함께 사용할 수 있는 다양한 옵션의 몇 가지 예입니다.
(1) -r option : 디렉토리와 그 내용을 재귀적으로 복사하기
$ scp -r mydirectory remoteuser@remoteserver:/home/remoteuser/
remoteuser@remoteserver's password:
myfile.txt 100% 12 0.0KB/s 00:00
mydirectory/ 100% 4096 1.0MB/s 00:00
이 예에서 -r 옵션은 mydirectory 디렉토리와 그 내용을 재귀적으로 원격 시스템에 복사하는 데 사용됩니다. 출력은 myfile.txt 파일과 mydirectory 디렉토리가 모두 성공적으로 전송되었음을 보여줍니다.
(2) -p option : 타임스탬프 및 권한과 같은 파일 속성 보존
$ scp -p myfile.txt remoteuser@remoteserver:/home/remoteuser/
remoteuser@remoteserver's password:
myfile.txt 100% 12 0.0KB/s 00:00
이 예에서 -p 옵션은 myfile.txt 파일을 원격 시스템에 복사할 때 타임스탬프 및 권한과 같은 파일 속성을 보존하는 데 사용됩니다.
(3) -P option : 전송에 다른 SSH 포트 사용
$ scp -P 2222 myfile.txt remoteuser@remoteserver:/home/remoteuser/
remoteuser@remoteserver's password:
myfile.txt 100% 12 0.0KB/s 00:00
이 예에서 -P 옵션은 전송을 위해 다른 SSH 포트(2222)를 지정하는 데 사용됩니다. 기본적으로 scp는 SSH 연결에 포트 22를 사용합니다.
(4) -v option : 디버깅 목적의 상세 출력
$ scp -v myfile.txt remoteuser@remoteserver:/home/remoteuser/
Executing: program /usr/bin/ssh host remoteserver, user remoteuser, command scp -v -t /home/remoteuser/
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to remoteserver [192.168.0.100] port 22.
debug1: Connection established.
...
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending command: scp -v -t /home/remoteuser/
Sending file modes: C0644 12 myfile.txt
Sink: C0644 12 myfile.txt
myfile.txt 100% 12 0.0KB/s 00:00
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2472, received 1824 bytes, in 0.2 seconds
Bytes per second: sent 10614.7, received 7811.7
debug1: Exit status 0
이 예에서 -v 옵션은 디버깅 목적으로 상세 출력을 활성화하는 데 사용됩니다. 출력에는 SSH 연결, 인증 및 전송 프로세스의 세부 정보가 표시됩니다. 이는 전송 관련 문제를 해결하는 데 도움이 될 수 있습니다.
댓글