rsync : 최상위 디렉토리를 제외하는 방법 된 시간을

그래서 나는 겉보기에는 간단한 문제가 있지만 지금까지 해결책을 찾지 못했습니다 : 여전히 모든 하위 항목을 동기화하면서 rsync에서 최상위 디렉토리를 제외하고 싶습니다. 특정 문제는 최상위 디렉토리의 시간을 수정할 수있는 권한이 없지만 모든 어린이가 올바르게 동기화 된 시간을 원한다는 것입니다.

내가 사용하는 rsync 명령은 다음과 같습니다.

rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/

server.example.com:/usr/local/directory/모양이 맘에 :

drwxrws---  5 root   staff 24576 Jul  9 15:00 .

(내 로컬 사용자는의 멤버입니다 staff)

rsync를 실행하면 다음 오류가 발생합니다.

rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23

이것은 로컬 머신에서 버전 3.0.9이고 원격에서 3.0.7입니다. 두 머신 모두 데비안을 실행합니다.



답변

rsync의 필터 규칙은 최상위 디렉토리와 일치 할 수 없으므로 항상 동기화됩니다. 임시 해결책은 디렉토리 자체 대신이 디렉토리 내의 모든 파일을 동기화하는 것입니다.

rsync -rlptDu -- * server.example.com:/usr/local/directory/

더하다 .[!.]* 후에 *는 최상위 디렉토리에있는 점 파일이있는 경우, 그리고 ..?*두 개의 점으로 시작하는 파일 이름이있는 경우.


답변