rsync-전송 중에 임시 파일을 작성합니까? 될 때까지

내가 볼 수있는 한 rsync는 파일이 완료 될 때까지 대상 디렉토리에 파일을 만들지 않습니다.

즉, 파일이 임시 디렉토리에 파일을 작성하고 파일이 완료되면 파일을 대상 디렉토리에 복사해야합니다.

우선, 이것이 맞습니까?

true 인 경우 rsync가 임시 디렉토리를 사용하지 않고 대신 대상 디렉토리에 파일을 작성하고 완료 될 때까지 파일을 계속 쓸 수 있습니까?



답변

예, 임시 파일을 생성합니다.

매뉴얼 페이지 에 따르면 임시 파일이 저장되는 디렉토리를 다음과 같이 -T 매개 변수와 함께 지정할 수 있습니다.

-T, –temp-dir = DIR 디렉토리 DIR에 임시 파일을 만듭니다.

질문의 두 번째 부분에 대한 답변도 찾을 수 있습니다.

-인플레 이스

이 옵션은 파일의 데이터를 업데이트해야 할 때 rsync가 파일을 전송하는 방법을 변경합니다. 파일의 새 사본을 작성하고 파일이 완료되면 파일을 제자리로 옮기는 기본 방법 대신, rsync는 업데이트 된 데이터를 대상에 직접 씁니다. 파일.


답변

기본적으로 대상 디렉토리에 이름이 지정된 임시 파일을 작성합니다 .<FILE_NAME>.<RANDOM_STRING>. 따라서 복사하는 경우 foo.txt라는 tmp 파일을 만듭니다 .foo.txt.GV4H3( GV4H3실행 할 때마다 다른 임의의 문자열입니다). 다음 rsync옵션을 사용하여이 동작을 제어 할 수 있습니다.

   --partial
          By default, rsync will delete any partially transferred
          file if the transfer is interrupted.  In  some  circum‐
          stances  it  is more desirable to keep partially trans‐
          ferred files. Using the --partial option tells rsync to
          keep  the  partial  file which should make a subsequent
          transfer of the rest of the file much faster.

   --partial-dir=DIR
          A better way to keep partial files than  the  --partial
          option  is  to  specify a DIR that will be used to hold
          the partial data (instead of writing it out to the des‐
          tination file).  On the next transfer, rsync will use a
          file found in this dir as data to speed up the  resump‐
          tion  of  the  transfer and then delete it after it has
          served its purpose.

rsync매뉴얼 페이지 의 관련 부분을 읽으십시오 (다음은 사용 방법에 대한 큰 섹션의 일부만 추출한 것입니다 --partial-dir).


답변

rsync는 대상 디렉토리에 임시 파일을 작성합니다. 이 파일의 이름은 소스와 같지만 확장자가 있습니다. 그것은 다음과 같을 수 있습니다 :

source: foo.bar
target temp: foo.bar.hzmkjt7 (hzmkjt7 is just an example)

파일이 소스의 정확한 사본임을 확인한 후에 확장자가 제거됩니다. 이름 변경 프로세스 소유권 동안 권한 및 수정 시간이 설정됩니다. 따라서 권한 때문에 파일이 보이지 않을 수 있습니다. 임시 파일을 보려면 자신이 소유하지 않은 파일과 모든 파일을 볼 수있는 권한이 있는지 확인하십시오.