내 의도는 서버에 있는 특정 하드 드라이브의 매일 "스냅샷"을 만드는 것입니다. 오늘, 3일 전, 5일 전, 10일 전 등의 스냅샷이 유지되고 순환되도록 자동으로 확인하는 방법은 무엇입니까? 저는 이중성이라는 도구를 찾았지만 이를 달성하기 위해 이를 사용할 방법을 찾지 못했습니다. bash 쉘 스크립트를 사용해야 합니까? 영감을 받을 수 있는 사례가 있나요?
시스템이 데비안을 실행 중입니다.
답변1
Duplicity는 스냅샷을 생성하지만 직접 읽을 수 있는 형식이 아닌 압축된 아카이브 형식입니다.
스냅샷을 생성하는 방법에는 여러 가지가 있습니다. 다음과 같은 일부 고급 파일 시스템ZFS그리고BTRFS일부 디스크 계층과 같은 내장 기능으로 사용하십시오.좌심실 용적.
공통 파일 시스템에서 기본 기술은 스냅샷이 생성될 디렉터리 트리를 재생성하는 것입니다.하드 링크파일을 복사하는 대신 각 파일에 저장합니다. 파일이 삭제되고 새 버전으로 교체되면 스냅샷은 이전 버전을 유지합니다. 일부 응용 프로그램은 파일을 내부에서 수정하므로 동일한 파일이므로 스냅샷 버전도 수정됩니다. 이는 하드 링크 기반 솔루션의 본질적인 문제입니다.
직접 하드 링크의 변형은 파일이 백업될 때 항상 복사본을 만드는 것입니다. 그러나 마지막 백업 이후 파일이 변경되지 않은 경우 새 복사본을 만드는 대신 이전 백업에 대한 하드 링크를 만듭니다. 이전 방법과 달리 이 방법은 이전 백업의 파일을 수정하여 기록을 덮어쓸 위험이 없으므로 백업에 적합합니다.
동기화옵션 --link-dest
과스냅 사진이러한 스냅샷을 만드는 가장 일반적인 도구입니다. Rsnapshot은 더 높은 수준의 도구입니다. 내부적으로 rsync를 사용하지만 올바른 매개변수를 사용하여 호출하고 오래된 백업을 선별하는 등의 작업을 관리합니다.
rsnapshot을 사용하면 여러 시간 간격을 정의하여 오래된 백업을 수집하는 방법을 지정할 수 있습니다. 최소 간격은 귀하의 경우 매일 백업이 이루어지는 빈도입니다. 간격이 길수록 보관할 백업이 정의됩니다. rsnapshot의 각 명령은 실행할 때 두 가지 작업을 수행합니다.retain INTERVAL N
rsnapshot.conf
rsnapshot INTERVAL
N
-1개의 스냅샷 만 남도록 백업 디렉토리를 선별합니다INTERVAL
.- 가장 낮은 간격의 경우 백업이 이루어지며, 다른 간격의 경우 이전 간격의 현재 이미지가 복사됩니다.
예를 들어 매일 백업을 수행하고 3일, 5일, 10일 전의 백업을 유지하려면 retain
다음 줄을 다음 줄에 포함합니다 /etc/rsnapshot.conf
.
retain daily 2
retain day3 2
retain day5 3
rsnapshot daily
일일 크론 작업으로 실행합니다. 몇 분 전과 3일마다 작업을 실행하면 다음과 같이 대략적으로 계산할 수 있습니다 rsnapshot day3
.rsnapshot day5
04 04 5,10,15,20,25,30 * * rsnapshot day5
07 04 3,6,9,12,15,18,21,24,27,30 * * rsnapshot day3
10 04 * * * rsnapshot daily
(예를 들어, 2일차에 백업을 삭제하기 때문에 3일 된 백업을 가질 수 없습니다. 해야 할 일은 3일 동안 매일 백업을 유지하는 것뿐입니다.) 보다 일반적인 보존 체계는 주간 및 월간 보존입니다. rsnapshot 문서에 표시된 대로.
답변2
한 달 동안 인터넷 검색을 한 결과 다음과 같은 사실을 발견했습니다.나비 백업
이 유틸리티는 rsync
백업, 복구 및 기타 작업(보관, 보존, 정리 등)에 사용됩니다.
이 유틸리티에는목차다양한 백업을 특정 시점부터 복원할 수 있도록 저장하는 데 사용되는 포인트입니다. (Windows의 Time Machine 또는 VSS와 유사)
다음은 백업의 예입니다.
$> bb backup --computer pc1 --destination /nas/backup_store --data User Config --type Unix
복원:
$> bb restore --computer pc1 --catalog /nas/backup_store --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
보다 backup-id
:
$> bb list --catalog /nas/backup_store
BUTTERFLY BACKUP CATALOG
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-03 17:50:36
...
및 세부정보 f65e5afe-9734-11e8-b0bb-005056a664e0
:
$> bb list --catalog /nas/backup_store --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Type: Full
Timestamp: 2022-02-03 17:50:36
Start: 2022-02-03 17:50:36
Finish: 2022-02-03 18:02:32
OS: MacOS
ExitCode: 0
Path: /nas/mybackup/pc1/2022_02_03__17_50
List: etc
home
그게 다야!
또한 이 도구는 Unix(Linux, BSD 등), MacOS 및 Windows(rsync가 설치된 cygwin) 시스템을 백업합니다.
답변3
저는 백업용으로 BackupPC를 사용해 왔습니다. 이를 통해 tar, SMB 및 rsync를 사용하여 백업 중인 파일에 액세스할 수 있습니다. 제 경우에는 모든 시스템에서 rsync(Windows의 Cygwin)를 사용합니다.
백업을 찾았기 때문에 첫 번째 복원이 빨랐습니다. 증분 백업과 전체 백업은 서로 다른 일정에 따라 유지될 수 있습니다. 각 파일 버전의 복사본 하나만 보관되므로 공간 효율성이 매우 높습니다. 파일 복구는 개별 파일을 찾아 다운로드하거나, 복구 아카이브를 생성하거나, 파일을 직접 복구할 수 있는 웹 페이지를 통해 수행됩니다. 대부분의 시스템에서는 쓰기 액세스가 비활성화되어 있으므로 아카이브에서 복원하거나 개별 파일을 복사하여 복원해야 합니다.
기록 백업을 유지하기 위해 유사한 메커니즘을 사용하는 다양한 다른 백업 시스템이 있습니다.