rsync --backup-dir이 변경된 데이터를 가져오지 않음 - 대신 원래 백업 위치로 이동함

rsync --backup-dir이 변경된 데이터를 가져오지 않음 - 대신 원래 백업 위치로 이동함

왜 이것이 예상대로 작동하지 않는지 잘 모르겠습니다. /scripts/full에 /scripts/source의 전체 rsync 백업이 있고 /scripts/diff에 차등 백업을 넣으려고 합니다. 그러나 원본 위치인 /scripts/source에 파일을 추가한 후 차등 백업을 실행하면 , 파일은 /scripts/diff 대신 /scripts/full에 백업됩니다. 다음은 제가 만든 테스트 스크립트입니다.

DIFF='/scripts/diff'
SOURCE='/scripts/source'
FULL='/scripts/full'
CTIME=$(date +%T)
TESTFILE=newfile$CTIME
rm -r $DIFF/*
rm $SOURCE/newfile*
rm $FULL/newfile*
echo "I'm in a file " >  $SOURCE/$TESTFILE
rsync \
-a \
-A \
-X \
-h \
-H \
-b \
--backup-dir=$DIFF \
$SOURCE/* \
$FULL
echo "----------------------------------------------------------------------"
echo "Our test file is: $TESTFILE"
echo "----------------------------------------------------------------------"
echo "Source Files in $SOURCE - we should see our one test file"
ls $SOURCE
echo "----------------------------------------------------------------------"
echo "Full backup in past - We should not see any test files here"
ls $FULL
echo "----------------------------------------------------------------------"
echo "Diff files in $DIFF  - we should see the same test file here as"
echo "was in the $SOURCE dir"
ls $DIFF

스크립트에서 테스트 파일은 소스 디렉터리에 삭제됩니다. rsync는 전체 디렉터리를 복사해서는 안 됩니다(하지만 복사합니다). diff 디렉토리에 복사해야 합니다(그렇지 않습니다).

매뉴얼 페이지를 다시 읽고 웹을 검색하는 것은 도움이 되지 않았습니다. 내 환경에 맞게 조정된 간단한 차등 백업 구성표는 작동하지 않습니다. 내가 여기서 뭘 잘못하고 있는 걸까? 가끔 전체 백업을 해보고 싶습니다. 그런 다음 변경된 파일만 포함하는 후속 diff를 실행하고 싶습니다(전체 백업은 변경되지 않음). 참조할 전체 백업이 있고 변경된 파일은 diff에서 찾을 수 있다는 아이디어입니다. 내 스크립트는 이보다 더 복잡하지만 문제를 격리하기 위해 단순화했습니다. 고마워요, -제프

답변1

-b --backup-dir옵션이 원하는 대로 작동하지 않는 것 같습니다 . 대신
다른 옵션을 사용해 볼 수 있습니다 --link-dest. 명령줄은 다음과 유사해야 합니다.

rsync -aAXhH --link-dest=/scripts/full/  /scripts/source/  /scripts/diff/

무슨 뜻인가요? (새 파일)의 파일과 (비어 있는) 파일을 비교하라고
지시하고 있습니다 .rsync/scripts/source//scripts/diff/그리고 추가 디렉터리 /scripts/full/(백업 디렉터리)에 있습니다.

노트:

  • 일반적으로 변수를 큰따옴표로 보호하는 것이 좋습니다 "". TESTFILE="newfile${CTIME}"그럼 더 좋아TESTFILE=newfile$CTIME
  • 남자에게서rsync:

    --link-dest=DIR         hardlink to files in DIR when unchanged
    
  • 옵션 --backup-dir(...)은 대상 디렉터리의 파일을 덮어쓰는 대신 일반적으로 다른 확장명을 사용하거나 다른 디렉터리에 있는 파일을 복사하는 데 사용됩니다.

    -b, --backup                make backups (see --suffix & --backup-dir)
        --backup-dir=DIR        make backups into hierarchy based in DIR
        --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
    
  • 응 그래야지덜 모호하다...

관련 정보