1. 파일 이름에 특수 문자 문제
파일 이름에 특수 문자가 있습니까? 이러한 파일을 쓰는 파일 시스템에 따라 .
예를 들어 파일 앞에 점 ( ) 을 붙일 수 없습니다 .
2. rsync 수정 시간 및 webdav2 관련 문제
webdav2 장착 box.com 디렉토리에서 파일 수정 시간을 기록 / 추적하는 데 문제가 있다고 설명 된 이 블로그 게시물rsync
을 보았습니다.
마운트 된 파일 시스템에서 문제가 다음과 같이 나타납니다.
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
같은 기사에서 해결 방법을 보여주었습니다.
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
이것은 사용하기에 좋은 방법 rsync
이지만 체크섬이 아닌 크기를 기준으로 파일을 비교하는 것입니다.
3. davfs2 (WebDAV) 관련 문제
davfs2를 통한 rsync 라는 제목의이 스레드 를 발견했습니다. sourceforge의 WebDAV (davfs) 포럼에서. 누군가 WebDAV를 사용하여 온라인 스토리지 제공자를 마운트하고 WebDAV를 통해 마운트 된 스토리지에 rsync를 수행하려는 유사한 상황에 대해 문의했습니다. 이것이 WebDAV 의 개발자 (Werner Baumann)가이 주제에 대해 말한 것 입니다.
베르너의 응답 발췌
davfs2는 완전한 파일 만 업로드합니다. rsync가 일반적으로 수행하는 증분 작업을 수행 할 수 없으므로 rsync가 매우 효율적입니다.
davfs2는 디스크의 로컬 캐시를 사용합니다. 이렇게하면 응답 속도가 빨라지고 응용 프로그램에서도이 기능을 활용할 수 있습니다. 그러나이를 위해서는 로컬 디스크 공간이 필요합니다. 캐시 크기가 크면 rsync가 로컬 캐시를 사용하여 대부분의 작업을 수행 할 수 있으며 rsync가 이미 완료되면 davfs2가 백그라운드에서 대부분의 파일을 업로드합니다.
Werner는 다음을 제안합니다.
이 경우 단점이 될 수 있습니다. rsync가 원격 호스트에서 파일을 읽을 때 davfs2에 의해 로컬 캐시로 먼저 전송해야합니다 (아직없는 경우). 이로 인해 프로세스가 실제로 불필요하게 느려질 수 있습니다. rsync는 복잡한 복사 프로그램으로 만 작동하므로 cp를 대신 사용하는 것이 좋습니다. cp에는 davfs2 파일 시스템의 파일보다 최신 파일 만 복사하는 옵션 (-u)이 있으며 (= smartdrive) 파일을 읽을 필요는 없지만 mtime과 같은 파일 메타 데이터 만 읽습니다.
"cp -pru directory / to / backup dav /"와 같은 명령이 작업을 수행 할 수 있습니다. 파일을 다운로드하지는 않습니다 (rsync가 할 수는 있지만 확실하지 않습니다) (cp 및 rsync 설명서를 참조하십시오).
옵션?
@Anthon이 제안한 것처럼이 cp -u
방법을 사용 하여 파일을 복사 할 수 있습니다. 이 방법은 파일 크기 만 비교할 때 파일 크기 만 고려하므로 완전히 신뢰할 수는 없습니다.
파일을 비교할 때 수정 시간 만 보는 것은 사용하지 않아야합니다 cp -pru
. Werner는이 스레드에서 이유를 설명합니다 .
모드 시간 문제에서 발췌
davfs2 파일 시스템을 마운트 해제하고 나중에 다시 마운트하면 파일 시간이 서버의 시간 정보에 따라 변경되었을 수 있습니다. cp -pu 및 rsync와 같은 도구는 변경된 파일을 판별하기 위해이 시간에 의존 할 수 없습니다.
따라서 수정 시간과 관련된 다양한 문제를 고려할 때 순전히 체크섬을 사용하는 접근 방식이 더 적합합니다.
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
합니다.cp
아마도이 작업을 수행 할 수 있다고 확신 합니다 ... 아마도 find의 출력을 cp로 파이핑하여? 그러나 나는 그것을하는 방법을 아직 모른다. 우리가 해결책을 제시한다면, 나는 시도 할 것이다cp -ru
. 감사합니다