7.6. OpenShift Container Platform 컨테이너에 또한 해당 컨테이너에서 파일 복사
CLI에서 rsync
명령을 사용하여 컨테이너의 원격 디렉터리에서 또는 원격 디렉터리로 로컬 파일을 복사할 수 있습니다.
7.6.1. 파일을 복사하는 방법 이해 링크 복사링크가 클립보드에 복사되었습니다!
oc rsync
명령 또는 원격 동기화는 백업 및 복원을 위해 Pod에서 및 Pod로 데이터베이스 아카이브를 복사하는 유용한 툴입니다. 실행 중인 Pod에서 소스 파일의 핫 리로드를 지원하는 경우 개발 디버깅을 위해 oc rsync
를 사용하여 소스 코드 변경 사항을 실행 중인 Pod에 복사할 수도 있습니다.
oc rsync <source> <destination> [-c <container>]
$ oc rsync <source> <destination> [-c <container>]
7.6.1.1. 요구사항 링크 복사링크가 클립보드에 복사되었습니다!
- 복사 소스 지정
oc rsync
명령의 소스 인수는 로컬 디렉터리 또는 pod 디렉터리를 가리켜야 합니다. 개별 파일은 지원되지 않습니다.Pod 디렉터리를 지정할 때는 디렉터리 이름 앞에 Pod 이름을 붙여야 합니다.
<pod name>:<dir>
<pod name>:<dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디렉터리 이름이 경로 구분자(
/
)로 끝나는 경우 디렉터리의 콘텐츠만 대상에 복사됩니다. 그러지 않으면 디렉터리 및 해당 콘텐츠가 대상에 복사됩니다.- 복사 대상 지정
-
oc rsync
명령의 대상 인수는 디렉터리를 가리켜야 합니다. 해당 디렉터리가 존재하지 않지만rsync
가 복사에 사용되는 경우 사용자를 위해 디렉터리가 생성됩니다. - 대상의 파일 삭제
-
--delete
플래그는 로컬 디렉터리에 없는 파일을 원격 디렉터리에서 삭제하는 데 사용할 수 있습니다. - 파일 변경 시 연속 동기화
--watch
옵션을 사용하면 명령에서 파일 시스템 변경의 소스 경로를 모니터링하고 변경이 발생하면 변경 사항을 동기화합니다. 이 인수를 사용하면 명령이 영구적으로 실행됩니다.빠르게 변경되는 파일 시스템으로 인해 동기화를 연속으로 호출하지 않도록 동기화는 잠시 후에 수행됩니다.
--watch
옵션을 사용할 때의 동작은 일반적으로oc rsync
에 전달되는 인수를 포함하여oc rsync
를 수동으로 반복해서 호출하는 것과 사실상 동일합니다. 따라서-delete
와 같이oc rsync
를 수동으로 호출하는 데 사용하는 것과 같은 플래그를 통해 해당 동작을 제어할 수 있습니다.
7.6.2. 컨테이너에서 또는 컨테이너에 파일 복사 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너에서 또는 컨테이너에 로컬 파일 복사 지원 기능은 CLI에 빌드됩니다.
사전 요구 사항
oc rsync
로 작업할 때 다음 사항에 유의하십시오.
rsync가 설치되어 있어야 합니다.
oc rsync
명령은 클라이언트 머신 및 원격 컨테이너에 있는 경우 로컬rsync
툴을 사용합니다.rsync
가 로컬이나 원격 컨테이너에 없는 경우 tar 아카이브는 로컬에 생성된 후 컨테이너로 전송되며, 여기에서 tar 유틸리티를 통해 파일이 추출됩니다. 원격 컨테이너에서 tar를 사용할 수 없는 경우 복사가 실패합니다.tar 복사 방법에서는
oc rsync
와 동일한 기능을 제공하지 않습니다. 예를 들어oc rsync
는 대상 디렉터리가 존재하지 않는 경우 대상 디렉터리를 생성하고 소스와 대상 간에 다른 파일만 보냅니다.참고Windows에서는
oc rsync
명령과 함께 사용할 수 있도록cwRsync
클라이언트를 설치하고 PATH에 추가해야 합니다.
프로세스
로컬 디렉터리를 Pod 디렉터리에 복사하려면 다음을 수행합니다.
oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>
$ oc rsync <local-dir> <pod-name>:/<remote-dir> -c <container-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc rsync /home/user/source devpod1234:/src -c user-container
$ oc rsync /home/user/source devpod1234:/src -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod 디렉터리를 로컬 디렉터리에 복사하려면 다음을 수행합니다.
oc rsync devpod1234:/src /home/user/source
$ oc rsync devpod1234:/src /home/user/source
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
oc rsync devpod1234:/src/status.txt /home/user/
$ oc rsync devpod1234:/src/status.txt /home/user/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.6.3. 고급 Rsync 기능 사용 링크 복사링크가 클립보드에 복사되었습니다!
oc rsync
명령은 표준 rsync
보다 적은 수의 명령줄 옵션을 표시합니다. oc rsync
에서 사용할 수 없는 표준 rsync
명령줄 옵션(예: --exclude-from=FILE
옵션)을 사용하려는 경우 표준 rsync
's --rsh
(-e
) 옵션 또는 RSYNC_RSH
환경 변수를 해결 방법으로 사용할 수 있습니다.
rsync --rsh='oc rsh' --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
$ rsync --rsh='oc rsh' --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
또는 다음을 수행합니다.
RSYNC_RSH
변수를 내보냅니다.
export RSYNC_RSH='oc rsh'
$ export RSYNC_RSH='oc rsh'
그런 다음 rsync 명령을 실행합니다.
rsync --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
$ rsync --exclude-from=<file_name> <local-dir> <pod-name>:/<remote-dir>
위의 두 가지 예 모두 oc rsh
를 원격 쉘 프로그램으로 사용하여 원격 Pod에 연결할 수 있도록 표준 rsync
를 구성하고 oc rsync
를 실행하는 대신 사용할 수 있습니다.