저는 Fedora 33(GNOME)에서 rsync-3.2.3을 사용하고 있습니다.
atime
그런데 파일과 폴더의 액세스 시간()을 어떻게 보존할 수 있을까요 ?
mtime
이 명령을 사용하면 수정 시간() 만 보존할 수 있습니다 .
rsync -t
답변1
보류 atime
(접속 시간)를 요청할 수 있습니다.원천이 --noatime
플래그를 사용하지만 relatime
(최신 기본값) 로 마운트된 파일 시스템에서는 noatime
더 이상 꼭 필요하지 않습니다 .
rsync -av --noatime src/ dstHost:dst/
atime
대상 시스템에 그대로 둘 수 있는 옵션이 없다는 것을 알고 있습니다 rsync
. 대상 시스템에 액세스할 수 있으면 복사된 트리를 탐색할 수 있습니다. 이와 같은 것은 GNU/Linux 유형 시스템에서 작동합니다.
( cd src/ && find -type f -print0 ) |
ssh dstHost 'cd dst && while IFS= read -r -d "" f; do touch -a -d "@$(stat -c %Y "$f")" "$f"; done'
또는 두 로컬 파일 시스템 간의 복사본을 처리하는 경우
( cd src/ && find -type f -print0 ) |
( cd dst && while IFS= read -r -d "" f; do touch -a -d "@$(stat -c %Y "$f")" "$f"; done )
기본적으로 두 스니펫은 동일한 작업을 수행합니다. 즉, 소스의 각 파일에 대해 대상에서 해당 파일을 찾아 atime
일치하도록 업데이트합니다 mtime
.
답변2
rsync 버전 3.2.0부터 atime에 영향을 미치는 두 가지 플래그가 있습니다.
--atimes, -U
보유접근(이용)시간--open-noatime
열린 파일의 시간을 변경하지 마십시오
이에 대한 전체 설명은 다음과 같습니다.
--atimes, -U
This tells rsync to set the access (use) times of the destina‐
tion files to the same value as the source files.
If repeated, it also sets the --open-noatime option, which can
help you to make the sending and receiving systems have the same
access times on the transferred files without needing to run
rsync an extra time after a file is transferred.
Note that some older rsync versions (prior to 3.2.0) may have
been built with a pre-release --atimes patch that does not imply
--open-noatime when this option is repeated.
--open-noatime
This tells rsync to open files with the O_NOATIME flag (on sys‐
tems that support it) to avoid changing the access time of the
files that are being transferred. If your OS does not support
the O_NOATIME flag then rsync will silently ignore this option.
Note also that some filesystems are mounted to avoid updating
the atime on read access even without the O_NOATIME flag being
set.
따라서 테스트를 통해 확인된 이에 대한 내 해석은 다음이 rsync가 atime을 업데이트하는 것을 방지 하고 atime을 다음으로 src
복사한다는 것입니다 .src
dest
rsync -UU <src> <dest>