100GiB의 파일을 미러링했습니다. 내 이미지에서 일부 타임스탬프와 파일 권한이 잘못되었을 수 있습니다. 이 문제를 해결하기 위해 rsync를 사용하고 싶습니다.
내가 다운로드한 서버에는 100GiB가 넘는 파일이 있었습니다. 내 미러는 일부 파일을 미러링합니다.각 소스 디렉터리에서.전체 디렉터리를 미러링하지 않습니다.
100GiB를 다시 다운로드하지 않고 타임스탬프와 파일 권한을 수정하도록 rsync에 어떻게 지시합니까?
참고로 지금 시도 중입니다 rsync -av --list-only HOST::MODULE >/tmp/list.txt
. 이 데이터를 얻은 후 더 나은 답을 알려줄 수 있는 사람이 없으면 데이터를 기반으로 각 파일을 터치하는 스크립트를 작성하겠습니다.
하지만 일을 더 깔끔하게 처리할 수 있는 방법은 없을까요?
(가지다이 문제, 하지만 내 필요에 응답하지 않는 것 같습니다. )
답변1
소스와 대상이 다른 시스템에 있고 rsync
클라이언트가 모든 종류의 서버와 통신하는 경우 rsync
데이터 콘텐츠를 전송하지 않고 권한과 타임스탬프가 업데이트됩니다. 예를 들어:
rsync -avP --existing server:/path/to/source /path/to/target
rsync -avP --existing server::module /path/to/target
반면에 rsync
NFS를 통해 서버의 파일 시스템에 액세스할 수 있는 경우와 같이 소스와 대상이 동일한 프로세스에 의해 관리되는 경우 두 경우 모두 데이터가 동일하다는 것을 확인할 수 있는 효율적인 방법이 없습니다. 바로가기를 업로드하려면 권한과 타임스탬프가 수정된 데이터를 다시 복사하세요. 예를 들어:
rsync -avP --existing /path/to/server/source /path/to/target
두 번째 상황에 직면하고 다음과 같은 경우절대적으로 확신파일 내용이 동일한 경우 rsync
"빠른 확인"이 실패하더라도 내용이 동일하다고 가정하고 권한과 타임스탬프만 업데이트하는 해결 방법이 있습니다.
rsync -avP --existing --size-only /path/to/server/source /path/to/target
이 --existing
플래그를 사용하면 대상 위치에 새 파일이 생성되지 않지만 기존 파일은 적절하게 업데이트됩니다. 이 --size-only
플래그는 rsync
타임스탬프를 강제로 무시합니다.