ctrl-c로 rsync를 중단하려면`--partial` 또는`--append`를 사용해야합니까?


14

내가 방해하려는 rsyncctrl-c이미 전송 된 데이터를 다시 할 필요없이 (의 절반 파일이 전송 된 후 가정 해 봅시다) 및 다시 시작합니다.

찾은 stackexchange / google 정보가 충돌하는 것 같습니다. 나는 일부는 use라고 말하고 --partial일부는 use라고 말합니다 --append. 나에게 그것은 둘 다 작동하는 것처럼 들린다.

내가 CTRL-C로 인터럽트 rsync를 원하는 경우에, 나는 사용해야 --partial--append?

두 가지 모두 효과가 있다면 언제 다른 것을 사용하는 것이 더 낫습니까?

답변:


8

다시 시작하면 --partial충분합니다. 기존의 복사 된 데이터와 새 데이터를 병합하는 임시 파일을 만들고 --inplace싶지 않은 경우에 사용하십시오 ( rsync예 : rsync대상 폴더에서 임시 파일을 작성하는 데 권한 문제가있는 경우) .

--append부분적으로 복사 된 데이터가 여전히 소스와 동일하다는 것을 보장 할 수있는 경우 에만 사용 하십시오. (일반적으로 이것은 잘못된 최적화입니다.)


1
따라서 위의 옵션 (실제로 --append-verify 사용)을 사용하고 rsync가 여전히 처음부터 시작한다고 주장 할 때 파일 크기에 변화가 없으며 나머지 파일 시간은 원래의 시간입니다. 복사를 시작했을 때, rsync가 거짓말을합니까, 아니면 걱정해야합니까?
Michael

@Michael 로컬 소스 및 대상이있는 경우 모든 규칙이 변경됩니다.
roaima

나는 LAN을 통해 그것을하고 있었지만 조금 더 실험 한 후에 문제는 --append-verify실제로 파일의 양쪽에서 실제로 파일 부분을 읽어야하기 때문에 병목 현상으로 인해 더 빠르지 않다는 것입니다 LAN 자체가 아닌 읽기 측의 오래된 드라이브입니다.
Michael

@Michael 잘 그렇습니다. 이미 전송 된 데이터의 검증을 요청한 경우 데이터를 읽어야합니다!
roaima

1
@alper 나는 그 옵션을 전에 본 적이 없다. 사용하는 것이 가장 좋을 것 --partial-dir같지만 아직 시도하지 않았습니다.
roaima

3
  • --append 파일이 대상에 이미 존재한다고 가정하고 rsync가 이미 내용을 확인하지 않도록합니다 (하지만 아래 참조).
  • --partial rsync에게 부분적으로 전송 된 파일을 삭제하지 않도록 지시합니다.

당신은 또한 필요 --inplace합니다 --partial(로 암시됩니다 --append).

알고 보니 --inplace의미 실제로 --partial,이 이유는 --append충분하다 (그것이 의미하는 --inplace것을 의미한다 --partial). 그러나 --partial혼자서는 충분하지 않습니다. 필요 --inplace하지 않으면 rsync는 최종 파일을 업데이트하는 대신 임시 파일을 만듭니다.


ctrl-c로 rsync를 중단하려면 --append? 때문에 --partial그 자체가 다시 시작되지 것으로.
Trevor Boyd Smith

그냥 사용 --inplace합니다. rsync는 "항상 재개"됩니다 (필요한 최소 데이터를 전송하려고 시도 함). 어떤 --append일은, 대상의 일부 파일이 손상된 경우 그래서, 그것은으로 손상된 상태로 유지됩니다 목적지에 이미 데이터를 검사하지 않도록 TELL rsync에있다 --append. --append예를 들어, 부분 파일이 매우 커서 기다릴 수 없거나 (손상된 경우 확실하지 않거나 신경 쓰지 않음) 또는 다른 특정 상황 인 경우 흥미로울 수 있습니다.
spuk

1
페도라 20에 man rsync옵션이 --append말한다... Implies --inplace
트레버 보이드 스미스

1
--inplace작동합니다. --append(답변에 언급했듯이)이 의미하기 때문에 작동 --inplace합니다 --partial(원래 질문 인 Ctrl-c에 의해 중단 될 때 부분적으로 전송 된 파일을 유지함). 따라서 --append"할 일은 --inplace있지만 대상에 이미있는 것을 체크섬하지 마십시오 . 중요한 차이점입니다. 관심이 없다면 둘 중 하나를 사용하십시오.
spuk

1
--partial WITHOUT 의 요점은 무엇입니까--inplace
Evan Carroll
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.