2016-12-28 1 views
4

작동하지 않는 '목록'파일 완료 전송. 그러나 대역폭 문제 때문에 내가 나중에 /dest/rsync를 --exclude-에서 나는 <code>/dest/</code>이 부분의 위치가 어디</p> <pre><code>rsync -a [email protected]:~/source/ /dest/ </code></pre> <p>사용하여 로컬 컴퓨터에 원격 서버에서 미완성 전송을 완료 rsync를 사용하는 것을 시도하고있다

에 내가 지금까지 함께 온 솔루션을 /tmp_dest/를 이동할 수있는 곳에서, /dest/의 사본이없는 다른 시스템의 /tmp_dest/에 rsync를 실행해야 /dest/의 전체 파일 목록을 포함하는 파일을 사용하여 rync의 --exclude-from 옵션을 사용하는 것입니다.

명령은 내가 솔루션을 사방에 흐르고 내가 건너 온 모든 변형을 시도 것처럼 내가 느끼는이 시점에서이

rsync -a --exclude-from 'list.txt' [email protected]:~/source/ /tmp_dest/ 

처럼 보일 것입니다. 절대

path 1/file 1 
path 2/file 2 

또는 -

: I가 함께 상기 시도

/absolute/source/path 1/file 1 
/absolute/source/path 2/file 2 

이것은 'list.txt'

상대적인 상대 및 절대 경로를 포함 명시 적으로 예를 들어 -을 포함하는 조합 내가 상대 경로 문제

**/path 1/file 1 
**/path 2/file 2 

에게 시정 파일 경로 앞에 **/를 선도하는 퍼팅 시도했다 (I가 원하는 사람들도 + 다른 파일을 예를 보았다) 그 라인

- /absolute/source/path 1/file 1 
- /absolute/source/path 2/file 2 

을 clude 또한 'list'이 들어있는 디렉토리로 이동하여 거기에서 rsync를 실행하여 rsync가 찾는 문제를 피하려고 시도했습니다.

/path/to/the/list/something1/to.exclude 
/path/to/the/list/something2/to.exclude 
/path/to/the/list/something3/to.exclude 

의심 할 여지없이 찾을 수 없음

나는 올바른 줄 바꿈이 'list'파일에서 사용되고 있음을 알게되었습니다. LF (Unix) 줄 바꿈


나는이 처음이

./yyyy-mm-dd folder 1/sub folder [foo]/file.a 
./(yyyy) folder 2 {foo2}/file.b 
./folder, 3/sub-folder 3/file.c 
당신이 볼 수 있듯이, 공백이

과 같은 것을 찾고 파일을 만든

find . -type f | tee list.txt 

다음 명령으로 'list'을 만들기 위해 노력했다 파일 경로의 다른 문자가 있지만 현재 이해할 때 영향을 미치지 않습니다.하지만 아마도 나는 실수로 특별한 의미를 지닌 문자를 벗어날 필요가 있습니다.

다음은 ./에서 대체 할 것입니다. LF (유닉스) 줄을 보존하는 다른 텍스트 편집기 원하는 결과를 얻기 위해 중단됩니다. (예를 들어 위와 같이, 나는 파일을 포함하는 모든 부모 트리 구조를 일치하도록 슬래시, 또는 이중 와일드 카드를 지적 /absolute/path/for/source/으로, 아무것도 ./를 교체 시도했습니다.

가 유일한 것은 내가 천국 느낌 'T는 파일 이름과 경로의 공간을 탈출한다했지만, 나는이 문제가되지 않을 것을 읽었습니다.

은 아마도 내가 뭔가를 내려다하고, 어떤 도움을 주시면 감사하겠습니다.

+0

메모장 ++? 리눅스를 사용하고 계십니까? :-) 어쨌든, 나는 몇 가지 테스트를했는데이 실패를 재현 할 수는 없습니다. 'list.txt'에있는 경로가'source /'에 상대적인 경우, 처음에'. /'가 없거나'-'를 포함하거나 포함하지 않고'** /'가 있거나없는 경우, rsync는 정확하게 그들을 전송에서 제외합니다 . 내 제안 : 로컬 전송을 통해이 문제를 재현 할 수 있는지, 즉 몇 개의 파일 만 사용하여 같은 시스템의 폴더간에 복사 할 수 있는지 확인하십시오. –

+0

예 메모장 ++ @ david-z : Windows 상자에있는 P입니다 (atom.io의 Atom이 시작될 때 멈추었지만 다른 날에는 또 다른 문제입니다). 문제의 zfs 서버에서 rsync를 실행하기 위해 ssh를 사용하고 있습니다. 나는 그것이 특별한 문자라고 생각하기 시작 했음에도 불구하고 그 장면을 제공 할 것이다. 나는 "패턴"이 --exclude-from에서 사용하는 (regex인가)지는 모르지만 이스케이프해야 할 몇 가지 문자가있는 것 같다. (https://www.boards.ie/b/thread/2056322749) –

+0

그럴 경우, 어떤 파일 이름이 당신을 위해 작동하는지 정확히 알지 못하면 누구든지이 질문에 대답 할 수있는 희망은 거의 없습니다. 작은 로컬 전송으로 재현 할 것을 권장하는 이유 중 일부는 직접 해결하지 않으면 [완료] (https://stackoverflow.com/help/mcve) 목록을 게시 할 수 있습니다. 다른 사람들이 문제를 재현 할 수있게 해주는 파일 이름. –

답변

0

을 여기에서입니다 rsync 맨 페이지 "--exclude-from"사용 방법 : --exclude-from = FILE FILE에서 패턴을 제외 읽어

다음 명령을 사용 : rsync를 -a --exclude-에서 = List.txt 파일 [email protected] : ~/소스// tmp_dest/

그리고 또한 더 나은입니다 list.txt 파일의 전체 경로 이름 사용

+0

고맙겠지 만,'rsync -anv --exclude-from =/home/rsync에는 아무런 차이가없는 것 같습니다./ source// empty_dir /'와'rsync -anv --exclude-from '/home/rsync.exclude'/ source// empty_dir /'을 제외 시키십시오. 후자의 일반적인 사용법을 보았을 때 나는 처음에는 조금 혼란 스러웠다. 그러나 내가 말할 수있는 한이 둘의 차이점은 없다. list.txt의 전체 경로 이름을 사용하는 것이 더 바람직하다는 것을 설명해 주시겠습니까? –

관련 문제