rsync는 디렉터리 백업을 생성하지 않습니다.

rsync는 디렉터리 백업을 생성하지 않습니다.

파일이 있는 디렉터리가 있다고 가정해 보겠습니다.

a b c d

그래서 rsync를 사용하여 복사합니다.

rsync -av --delete -P --backup --backup-dir=sample-$(date +%a-%H%M) ../sample /backups

/backup/sample에 들어갑니다.

-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a

하지만 디렉토리를 생성하면:

a b c d newdir

/backup/sample에만 들어갑니다.

-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 a
drwxr-xr-x 2 sergio sergio 8192 feb 17 18:52 newdir

그러나 파일을 삭제하면:

/backups
├── sample
│   ├── a
│   ├── b
│   ├── c
│   └── newdir
└── sample-sáb-1855
    └── sample
        └── d

그렇다면 rsync가 첫 번째 수정(newdir 생성)에서 'sample-date...'를 생성하지 않는 이유는 무엇입니까? 그게 예상되는 행동인가요?

답변1

에서rsync(1)

-b, --백업
이 옵션을 사용하면기존 대상 파일각 파일이 전송되거나 삭제될 때마다 이름이 변경됩니다. 다음을 사용하여 백업 파일이 이동되는 위치와 접미사(있는 경우)가 추가되는 것을 제어할 수 있습니다.--백업 디렉터리그리고--접미사옵션.

처음 두 번은 새 파일만 전송되므로 백업을 만들 필요가 없습니다.

세 번째 호출에서는 파일이 sample/d제거되고 이제 옵션 --backup은 rsync에 sample/d. 이 백업은 백업 디렉터리 /backups+ 에 생성됩니다 sample-$(date +%a-%H%M).

기존 파일을 수정하는 경우에도 마찬가지입니다. 예를 들어 파일을 변경하면 백업 디렉터리에 sample/a백업 복사본이 생성됩니다 .a/backups/sample-$(date +%a-%H%M)


버전이 지정된 백업을 생성하려면 rsync가 실행될 때마다 다른 대상 디렉터리를 제공하는 것이 좋습니다.

rsync -av --delete -P ../sample /backups/sample-$(date +%a-%H%M)

관련 정보