파일을 쓰는 동안 cron이 실행되면 rsync는 2개의 백업을 만듭니다.

파일을 쓰는 동안 cron이 실행되면 rsync는 2개의 백업을 만듭니다.

rsync30m마다 이 명령을 실행하는 crontab이 있습니다.

rsync -rtbpgoi --suffix="."$(date +"%Y%m%d%H%M") --exclude=".*" \
--exclude="~*" --exclude="[Tt][Hh][Uu][Mm][Bb][Ss].[Dd][Bb]" \
--exclude="[Dd][Ee][Ss][Kk][Tt][Oo][Pp].[Ii][Nn][Ii]" \
--info=STATS0,FLIST0,NAME1 /mnt/datastore/ /mnt/dsbackup

긴 다운로드와 같이 파일이 작성되는 중이면 결국 파일의 추가 백업 복사본이 생기고 그 중 하나는 불완전한 다운로드의 백업이 됩니다.

rsync아직 작성 중인 파일을 무시하는 방법이나 불완전한 파일 백업을 방지하는 다른 방법이 있습니까 ? 삭제 -b하고 전환 할 수 있다는 것을 알고 있지만 --suffix파일이 변경될 때 버전 기록을 유지하는 기능을 유지하고 싶습니다.

답변1

당신의 질문에 대답: rsync제가 아는 한에는 그렇습니다.아니요실행 중인 별도의 프로그램(웹 브라우저 등)이 파일을 적극적으로 수정하고 있음을 알 수 있는 기본 제공 방법이 있습니까?

주어진 백업 유형(30분마다 동일한 소스 및 대상 실행)을 달성할 수 있습니다.결정적인이 옵션을 명령에 추가하여 최종 파일과 이름이 다른 중간 파일(예: download_1.zip.tmp중간 파일 download_1.zip)을 제거합니다.--delete

처음 실행하는 동안 rsync파일 download_1.zip.tmp이 백업 위치에 복사됩니다. 다운로드가 30분 이내에 완료된다고 가정하면 중간 파일의 download_1.zip.tmp이름은 download_1.zip.다음을 실행하면 rsync중간 rsync파일은 더 이상 찾을 수 없으며 download_1.zip.tmp(이름이 바뀌었기 때문에 download_1.zip) 백업에서 삭제되고 교체됩니다 download_1.zip.tmp. download_1.zip이것은반품/mnt/dsbackup소스( )에 더 이상 존재하지 않는 추가 파일을 백업( )에서 제거합니다 /mnt/datastore.

rsync매뉴얼 페이지(버전 3.1.0) 에서 :

이는 rsync가 수신 측에서 불필요한 파일(송신 측에 없는 파일)을 제거하도록 지시하지만 동기화되는 디렉터리에서만 제거됩니다. 디렉토리 내용(예: "dir/*")에 와일드카드를 사용하지 않고 전체 디렉토리(예: "dir" 또는 "dir/")를 보내도록 rsync에 요청해야 합니다. 와일드카드는 쉘에 의해 확장되므로 rsync는 파일의 상위 디렉터리가 아닌 단일 파일을 전송하라는 요청을 받습니다. --delete-excluded 옵션을 사용하거나 전송 측에서만 일치하도록 규칙을 표시하지 않는 한 전송에서 제외된 파일도 삭제되지 않습니다(필터링 규칙 섹션의 포함/제외 수정자 참조).

관련 정보