sym 링크를 따라 가면서 rsync 수행


67

시스템의 다른 매체에있는 다른 디렉토리에 대한 심볼릭 링크가 포함 된 디렉토리가 있습니다.

/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007

그러나 심볼릭 링크는 다음과 같이 나타납니다.

/files/2011
/files/2010
/files/2009
/files/2008
/files/2007

rsync심볼릭 링크를 따르는 것을 어떻게 수행 할 수 있습니까?

예 :

rsync -XXX /files/ user@server:/files/

답변:


98

-Lrsync를에 플래그는 오히려 심볼 링크 대신에 링크 된 파일이나 디렉토리의 내용을 동기화합니다.


1
이렇게하면 모든 수신자 심볼릭 링크가 삭제되고 보낸 사람이 파일을 다시 보내기 시작합니다.
ensnare

그게 당신이 원하는 게 아닙니까? 심볼릭 링크뿐만 아니라 수신 측에 실제 파일을 갖고 싶다고 생각했습니다. 심볼릭 링크를 심볼릭 링크로 복사하려고하지만 수신 시스템의 "올바른"위치를 가리 키도록 자동으로 다시 작성 했습니까? 그렇다면 일반적으로 "심볼릭 링크를 따르는 rsync"가 의미하는 것은 아닙니다.
MadHatter

4
안녕하세요-디렉토리입니다. -K 플래그와 함께 작동하도록했습니다.
ensnare

4
나는 그렇게해서 나를 더 멍청하게 만들고 있다고 확신한다.
John Hunt

3
명확히하기 위해 -LK심볼릭 링크 된 파일과 디렉토리를 모두 따라 가려면
Mahn

17

이 문제가 발생했습니다. rsync가 심볼릭 링크 된 디렉토리를 디렉토리로 취급하도록하려면 K옵션 이 필요합니다.

rsync -K /files/ user@server:/files/


또한 --copy 안전하지 않은 - 링크 옵션을 추가 할 수 있습니다
그레고리 마가 샥

2

당신은 필요 모두를 -L 하고 -K당신이 양쪽에 심볼릭 링크가있는 경우, 예를 들어, 당신은 이미 1 rsync를 완료하고 rsync를 사용하여 백업을 업데이트 할했다.

    -L, --copy-links            transform symlink into referent file/dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir

이 경우에만 사용 -L하면 수신기 측의 심볼릭 링크가 지워지고 새로운 실제 디렉토리가 만들어집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.