먼저 rsync의 include / exclude 구문에 대해 약간 읽어보십시오. 나는 당신이하고 싶은 것이 **
globs보다 *
globs를 사용하는 것이 더 좋다는 느낌을 얻습니다 . ( **
여러 항목으로 *
확장 되는 반면 여러 디렉토리 항목과 일치하는 단일 항목으로 만 확장됩니다 . 세부 사항은 패턴 규칙 포함 / 제외man rsync
아래에 있습니다.)
즉, 최소한의 번거 로움없이 백업에서 시스템을 알려진 작동 상태로 복원하려면 파일이나 디렉토리를 제외하는 데주의해야합니다. 나는 rsnapshot을 직접 사용하고 실제로 반대 접근법을 취했습니다. 신중하게 선택된 몇 가지 디렉토리를 제외한 모든 것을 포함하십시오.
따라서 내 rsnapshot.conf는 실제로 (rsnapshot의 구성 파일 파서를 행복하게하는 탭이 있음) 상태입니다.
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
그리고 아주 조금. 그렇습니다. 엄격히 필요한 것보다 조금 더 복사 할 수는 있지만 ephermal이 아닌 것을 복사하는 것을 보장합니다. rsync의 hardlink-to-deuplicate 동작을 사용하는 rsnapshot으로 인해 실제 비용은 첫 번째 실행 중입니다. 그 후에 합리적 크기 (전체 데이터 세트 크기와 비교) 백업 대상 위치가 있다고 가정하면 시간이나 디스크 공간에서 추가 작업이 거의 필요하지 않습니다. 백업 대상 파일 시스템을 마운트하기 때문에 / backup의 내용을 제외합니다. 이를 제외하지 않으면 백업 자체로 복사되는 상황이 발생합니다. 그러나 베어 메탈로 복원해야 할 경우 간단하게 마운트 지점을 유지하고 싶습니다!
제 경우에는 합리적으로 사용할 수 없습니다 one_fs 1
. 현재 ~ 40 파일 시스템으로 ZFS를 실행합니다. 이러한 모든 것들을 명시 적으로 나열하는 것은 유지 관리의 악몽이 될 것이며 ZFS 파일 시스템 작업은 필요 이상으로 훨씬 더 복잡해집니다.
어쨌든 위에서 제외하고 싶은 것은 배포에 달려 있기 때문에 일반적인 대답을하는 것은 사실상 불가능합니다. 즉, / var 아래에서 일부 후보를 찾을 수 있습니다.
exclude /somepath/*
이 경우 완벽하게 괜찮습니다./somepath/
예상대로의 모든 항목이 제외됩니다 .**
모든 항목/somepath/
이 이미 제외 된 경우 더 깊게 볼 필요 가 없기 때문에 필요하지 않습니다 .