준비된 계정으로 자료 옮기기

LinuxBeginner
지금 연습하기

소개

도서 보존팀은 이제 전용 수신 계정을 사용합니다. 준비된 작업대에 Garden Atlas를 전달한 다음 목록과 처리 방법을 갱신하고 자료 한 장을 추가하며 오래된 생성 목록을 폐기하세요. 수신자는 전달된 본문을 읽고 읽기 도구를 실행할 수 있어야 합니다.

이 실습은 준비된 인증 정보와 폴더로 독립적으로 시작합니다. 기본적인 터미널 사용법과 첫 실습의 로컬 rsync 방법이면 충분합니다. SSH 신원, 호스트 검증과 원격 경로는 여기서 설명합니다. 명령과 가상 도서 본문은 영어로 유지됩니다.

준비된 수신 계정 확인하기

이 단계에서는 준비된 SSH 신원을 확인하고 실제 수신 계정에 자료를 전달합니다. Terminal을 사용하세요. 이 독립 실습은 원본과 수신 측을 첫 번째 판으로 새로 구성하며 이전 실습 파일을 재사용하지 않습니다.

두 계정은 이 훈련 환경과 커널을 공유합니다. 이동의 양쪽을 표현하며 물리적인 두 대의 컴퓨터는 아닙니다. labex는 /home/labex/project/folder-move/old를, bindery는 /home/bindery/incoming을 소유합니다. 수신 루트에는 자체 메모와 오래된 목록이 있습니다.

SSH는 암호화된 연결을 통해 다른 계정으로 명령을 실행합니다. 클라이언트 신원 키는 사용자를 인증하고 서버 호스트 키는 접속 대상을 식별합니다. 서로 다른 문제를 해결하는 키입니다. 준비 과정에서는 이 환경의 프로비저닝 데이터로 전용 키와 신뢰할 수 있는 고정 호스트 키를 마련했습니다. 플랫폼 로그인 접근 방식은 변경하지 않았습니다.

cd /home/labex/project/folder-move
cat ssh/config

Host bindery-desk는 클라이언트 별칭입니다. 같은 환경의 루프백 주소 127.0.0.1에 있는 사용자 bindery를 선택합니다. IdentityFile은 전용 개인 키를 가리키므로 내용을 표시하거나 복사하지 마세요. IdentitiesOnly yes는 해당 신원을 선택합니다. UserKnownHostsFile은 준비된 고정 키를 지정하고 StrictHostKeyChecking yes는 알 수 없거나 변경된 호스트를 거부합니다. BatchMode yes는 비밀번호를 기다리는 대신 인증 오류로 실패하게 합니다.

ssh-keygen -lf는 공개 키의 지문을 표시합니다. SHA256: 값을 프로비저닝 지문과 비교하세요.

ssh-keygen -lf ssh/known_hosts
cat ssh/host-fingerprint.txt

해시 값은 같아야 하지만 레이블과 주석은 달라도 됩니다. 여기서는 신뢰하는 프로비저닝 파일이 예상 신원을 알려줍니다. 실제 이동에서는 독립적으로 신뢰할 수 있는 경로로 받은 관리자 지문이 필요합니다. 신뢰할 수 없는 네트워크에서 키를 수집하는 것만으로는 신뢰가 성립하지 않습니다. 다르면 중단하고 고정 키를 지우거나 호스트 검증을 끄지 마세요.

-F ssh/config는 일반 SSH 설정을 대체하지 않고 이 별도 클라이언트 설정을 선택합니다. 작은따옴표 안의 명령은 수신 측으로 전달되어 실행되고 그 안의 경로는 원격 경로입니다. 세미콜론은 원격 셸에서 순서대로 실행할 명령을 구분합니다. 전송 전에 계정, 홈 디렉터리, rsync와 실제 대상을 확인하세요.

ssh -F ssh/config bindery-desk 'whoami; pwd; rsync --version; ls -la /home/bindery/incoming; cat /home/bindery/incoming/receiver-note.txt'
rsync --version

계정은 bindery, 홈은 /home/bindery이며 양쪽 모두 rsync를 표시합니다. 메모는 같은 서쪽 선반 관련 수신 지시입니다. 잘못된 계정으로 접속에 성공해도 올바른 이동은 아닙니다. 권한이 거부되면 선택한 신원이나 수신 권한을 조사하고 호스트 변경 경고가 나오면 신뢰하는 접속 대상을 조사해야 합니다. 안전하지 않은 옵션을 추가해도 어느 문제도 해결되지 않습니다.

rsync에서 -e 'ssh -F ssh/config'는 SSH 전송을 선택합니다. 대상 bindery-desk:/home/bindery/incoming/collection/은 설정한 계정과 수신 측 경로를 사용합니다. 콜론이 원격 대상임을 나타냅니다. remote라는 로컬 폴더는 SSH를 사용하지 않습니다. 이미 연습한 원본 끝 슬래시와 필터를 유지하세요.

rsync -ani -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -ai -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'

수신 계정에서 Garden Atlas 목록과 종이 경첩 처리 방법을 읽습니다. 숨김 설정과 실행 권한을 가진 전달된 읽기 도구를 실제로 원격 사용한 것입니다. 실행 후에도 로컬 프롬프트에 있습니다. 일회성 SSH 명령은 로컬 터미널을 원격 홈으로 옮기지 않습니다.

첫 번째 원격 전달 완료하기

이 단계에서는 별도의 생성 목록을 전달하고 수신자 소유 데이터와 원본 관리 데이터를 SSH로 읽습니다. /home/labex/project/folder-move의 Terminal에서 계속 진행하세요.

관리 대상 generated/ 디렉터리만 동기화합니다. 비공개 인력 메모는 전송에 넣지 마세요.

rsync -ani -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -ai -e 'ssh -F ssh/config' old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/receiver-note.txt; /home/bindery/incoming/collection/read-book'

Garden Atlas | desk edition 1, 변경되지 않은 수신 메모와 사용 가능한 읽기 도구가 보여야 합니다. 아카이브 모드는 실행 비트를 보존하지만 수신 파일은 수신 계정의 소유가 되므로 임의의 원본 소유자를 보존할 수는 없습니다. 수신 루트를 미러링하지 않아도 두 관리 디렉터리가 완성됩니다.

이전의 필터 없는 전송에 미리보기가 포함되었다면 우선 SSH로 그 정확한 불필요 파일을 확인하세요. 로컬 실습에서 배운 rm 방법으로 해당 임시 파일만 삭제합니다. incoming이나 수신 메모를 지우지 마세요. 필터는 이후 전송을 막지만 이미 복사된 파일을 정리하지는 않습니다.

관리 범위 안에서 다음 판 적용하기

이 단계에서는 두 번째 판을 전달하고 오래된 생성 목록만 폐기합니다. /home/labex/project/folder-move의 Terminal에 머무르세요. 콜론 뒤의 대상 경로는 수신 계정에 있습니다.

cat은 여러 파일 이름을 받아 그 순서대로 표시합니다. 편집 가능한 원본을 바꾸기 전에 제공된 다음 판을 읽으세요.

cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt

목록은 이제 48장이며 처리 방법은 리넨 경첩을 사용하고 새 보충 자료가 있습니다. cp -a는 파일 속성을 보존하면서 재귀적으로 복사합니다. revision/.는 숨김 파일을 포함한 모든 내용을 뜻합니다. 제공된 변경을 old/에 덮어쓰지만 개정판에 없는 항목을 삭제하지는 않습니다. 작업대가 old/generated/obsolete.txt를 명시적으로 폐기하므로 이 원본 파일만 삭제하세요. rm은 파일을 영구 삭제하므로 경로 범위를 넓히지 마세요.

cp -a revision/. old/
rm old/generated/obsolete.txt

보통 rsync는 크기와 수정 시각으로 데이터 변경을 판단합니다. -c는 파일 내용의 체크섬 비교를 추가합니다. 작은 파일이므로 비용이 적으며 같은 크기와 유지된 타임스탬프를 가진 변경도 감지합니다. 버전 이력이나 백업을 만들지는 않습니다. 자료 갱신을 미리 보고 적용하세요.

rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -aci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/

자료 미리보기에는 수정된 두 본문과 새 보충 자료가 나오고 임시 미리보기 파일은 없어야 합니다. 속성만 바뀐 항목도 나올 수 있습니다.

--delete는 원본에 없는 대상 항목을 선택한 동기화 디렉터리 안에서 삭제합니다. 여기서는 generated/만 완전한 관리 대상이며 수신 루트는 아닙니다. 폐기 작업을 미리 보고 *deleting obsolete.txt를 찾은 다음 정확히 같은 범위에 적용하세요.

rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
rsync -aci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/
ssh -F ssh/config bindery-desk 'cat /home/bindery/incoming/generated/current.txt /home/bindery/incoming/collection/texts/addendum.txt /home/bindery/incoming/receiver-note.txt'
ssh -F ssh/config bindery-desk '/home/bindery/incoming/collection/read-book'

작업대 두 번째 판, 새 자료, 원래 수신 메모와 갱신된 읽기 도구 출력이 보여야 합니다. 루트 전체를 --delete로 미러링하면 메모가 지워질 수 있습니다. 이 관리 목록 하나를 폐기하는 데 사용하지 마세요.

같은 미리보기를 반복하세요.

rsync -anci -e 'ssh -F ssh/config' --exclude='*.tmp' old/collection/ bindery-desk:/home/bindery/incoming/collection/
rsync -anci -e 'ssh -F ssh/config' --delete old/generated/ bindery-desk:/home/bindery/incoming/generated/

남은 파일 변경이 없어야 합니다. 선언한 범위에서 반복은 안전하지만 나중에 원본이 삭제되면 어느 대상 디렉터리가 관리 대상인지 다시 명확히 판단해야 합니다. rsync만으로 원래 판을 복구할 수는 없습니다. 이력이 필요하면 별도 백업을 사용하세요.

요약

사용 가능한 자료 모음을 전달하고 숨김 설정과 읽기 도구의 권한, 수신 작업대의 메모를 보존했습니다. 두 번째 동기화에서는 관리 대상 파일을 갱신하고 선언한 범위 안에서만 폐기된 목록을 삭제했습니다. 동기화에는 방향이 있으며, 버전 이력이 있는 백업이나 충돌 병합 기능은 아닙니다.