저는 변경되지 않은 파일이 이전 백업에 하드 링크되도록 이전 백업을 가리키는 옵션을 rsync
사용하여 증분 백업에 사용하고 있습니다.--link-dest
이것은 작동하지만 모든 파일에 적용되는 것은 아닙니다. 예를 들어 백업에 3년 넘게 수정되지 않은 파일이 포함된 디렉터리가 있습니다. 그러나 어떤 이상한 이유로 인해 그 중 일부만이 하드 링크입니다.
불편하게도 더 큰 파일은 모두 복사본입니다(즉, 를 통해 확인되는 파일에 대한 링크가 하나만 있습니다 ls -l
). 그러나 일부 작은 파일의 경우에도 마찬가지이며 실제로 일부 하드 링크된 파일은 일부 복사된 파일보다 큽니다.
어떤 것이 복사본이고 어떤 하드 링크가 될지 예측할 수 있는 패턴이 없는 것 같습니다. 파일 이름 길이와 파일 크기는 수정 날짜와 마찬가지로 관련성이 없어 보입니다. 복사된 목록과 하드 링크된 목록 모두에 이 모든 것이 혼합되어 있습니다. 즉, 파일이~인 것 같다여러 백업에서 일관성을 유지해야 하므로 한 백업에서 발생한 일이 다음 백업에서도 발생한 것처럼 보입니다.
rsync
파일 을 하드 링크하는 대신 복사하게 만드는 일부 속성(기술적 또는 기타)이나 기능이 있습니까 ?
편집 1:ls -l
"속성"을 언급하면 목록에 없지만 영향을 미칠 수 있는 일부 속성이 있는지 궁금했지만 lsattr
소스 디렉터리에서 수행하면 모든 파일이 동일한 속성을 가지고 있음을 알 수 있습니다.
편집 2:이전에(지금은 삭제됨) 권한이 모두 같다고 했는데, 그건 틀렸습니다. 권한은 대상(백업된) 디렉터리에서도 동일했습니다. (권한을 보존하기 위해)를 사용하고 있는데 --perms
왜 권한이 보존되지 않는지 모르겠습니다. 이전에는 루트가 아닌 사용자로 실행했지만 지금은 차이가 나는 경우를 대비해 루트로 시도하고 있지만 권한이 여전히 유지되지 않습니다. 이는 아마도 일부 파일이 변경된 것처럼 보이는 이유일 수 있습니다. 하지만 해당 권한은 분명히 있습니다(적어도 잘못된 권한이 있는 이전 백업과 비교할 때).
편집 3:이제 내 CIFS 서버와 관련이 있다고 생각합니다. mount.cifs
맨 페이지에 옵션에 대한 내용이 있습니다 file_mode
. "서버가 CIFS Unix 확장을 지원하지 않는 경우 이는 기본 파일 모드를 재정의합니다." mount
마운트를 나열하기 위해 인수 없이 명령을 실행하면 나열된 옵션 file_mode=0755
과 dir_mode=0755
내가 보는 것과 관련된 옵션이 포함됩니다. 파일을 마운트 할 수 없으므로 chmod
원래 권한이 없었던 파일은 0755
변경된 것으로 간주되어 다시 복사되며 마운트로 인해 백업에서 다시 한 번 잘못된 권한을 얻게 됩니다.
답변1
해결책이라기보다는 해결 방법에 가깝기 때문에 이제 --perms
/ -p
또는 이를 암시하는 어떤 것도 사용하지 않습니다. 분명히 내 권한은 복사되지 않지만 최소한 권한이 다르기 때문에 변경되지 않은 파일이 변경되었다고 생각하지 않습니다.