답변:
버전 제어를 사용하여 파일을 관리하는 데비안의 Joey Hess에서 etckeeper 를 원하는 것처럼 들립니다/etc
. git, mercurial, darcs 및 bazaar를 지원합니다.
git은 etckeeper가 가장 잘 지원하는 VCS이며 VCS 사용자는 가장 잘 알고 있습니다. 배포판이 etckeeper를 수정하여 기본 VCS가 git이 아닌 것을 선택했을 수 있습니다. 다른 VCS를 좋아한다면 git 이외의 VCS와 함께 etckeeper를 사용해야합니다.
나는 당신에게 최종 추천을 줄 수는 없지만 그 주제에 대해 몇 가지 생각을 공유 할 수 있습니다. / etc가 일반적으로 작다는 것을 감안할 때 간단한 압축 tar-ball 솔루션을 사용할 수 있습니다. 히스토리를 거칠 필요가 없다면 설정하기 가장 쉬운 솔루션 일 수 있습니다.
저에게는 / etc를 추적하기 위해 논리 볼륨을 관리하는 것이 지루할 것입니다. 특히 LVM 스냅 샷이 비교적 적은 양의 데이터 백업 수단으로 정기적으로 생성되도록 설계되지 않았다고 생각합니다.
btrfs는 이것에 대해 훨씬 더 잘 갖추어 진 것처럼 보이지만, 예를 들어 ext {2,3,4}만큼 안정적이지 않으며 fsck 도구도 아직 수행되지 않았습니다. 그러나 지속적으로 향상됩니다.
개인적으로 나는 실제로 git을 사용하여 / etc를 추적하지만 git은 소유권이나 권한과 같은 파일 메타 정보를 저장하지 않는다는 것을 명심해야합니다! 또한 .git 디렉토리에 올바른 권한이 있는지 확인하십시오. 그러나 이러한 문제를 해결하는 데 도움이되는 몇 가지 도구가 있습니다. 당신은 한 번 봐 걸릴 수도 있습니다 등 키퍼 와 같은 이상 사용 무언가의 유지의 / 등 트랙 또는 사용을 위해 정확하게 개발, gitperms 또는 메타 스토어 메타 정보를 추적 할 수 있습니다.
우리의 경우에 - "원하지 않는"추적하기 위해 우리는 HIDS를 사용하여 변경 samhain
다른 있습니다 tripwire
또는 aide
. 원하지 않는 일이 발생하면 이러한 모든 시스템이 경고합니다.
yum update
config-file이 해당 rpm과 같이 플래그가 지정된 경우 A 는 .rpmnew 또는 .rpmold를 떠나지 않고 아무것도 변경해서는 안됩니다.
Myselv 나는 cp -p origfile origfileYYYY-MM-DD
전날의 날짜 로 수정하려는 파일의 보안 사본을 만드는 것이 좋습니다 .
다른 모든 것이 실패하면 백업 담당자에게 전화를 걸어 마지막으로 알려진 "좋은"백업에서 복원을 요청합니다.
구성 관리 또는 파일 시스템 변경 사항 추적 / 모니터링을 찾고 있습니까?
이보다 빠르면 puppet
또는을 봅니다 chef
. CFEngine
상업적인 목적으로 존재합니다. puppet
요즘 인기있는 짐승입니다.
후자의 경우 파일 시스템 변경 사항을 모니터링하기가 어렵지만 inotify
파일 시스템 감사 auditctl
또는 SGI 와 같은 프로그램 인스턴스가 fam
있지만 다시 모니터링하는 것은 비용이 많이 들고 구현 비용이 많이들 수 있습니다 (파일 시스템 성능이 저하 될 수 있음).
rsnapshot
원하는 디렉토리에 대한 시간별 스냅 샷을 유지 하는지 확인할 수 있습니다. 24 시간, X 데일리, X 주간 등으로 설정할 수 있습니다. 디스크 공간에 대해 원하는만큼. 파일이 변경되지 않았을 때 하드 링크하기에 충분히 현명합니다 ( rsync
배경 뒤에서 사용) .
사용을 고려할 수 있습니다 git
. 변경 사항을 효율적으로 추적하고 이와 같은 용도로 사용하기가 매우 쉽습니다.
git status # Show changed files
git diff # Show file differences (paged automatically)
git commit -a # Commit all changes.
초기 설정은 다음과 같습니다. 한동안 해보지 않았습니다.
cd /etc
git init
git add *
git commit -a -m "Created repository"
이 방법은 단일 서버에 가장 효과적이지만 리포지토리를 변경하는 다른 도구와 함께 계층화 할 수 있습니다. 이는 카나리아 사이트에서 예상되는 변경이 발생하도록하는 데 유용 할 수 있습니다.
복제를 사용하여 여러 서버에 공통 인 파일을 처리 할 수 있습니다.
매일 실행되고 이전 백업 이후 변경된 파일을 백업하는 스크립트가 있습니다.
#!bin/bash
ext=$(date +"%Y%m%d")_ChangeS
mkdir -p "$1/$ext" && \
ionice -c3 rsync -ah --numeric-ids --inplace --backup \
--backup-dir="$1/$ext" \
--include="/etc" / "$1" && \
rmdir --ignore-fail-on-non-empty "$1/$ext"
백업이 생성되는 경로를 전달하면 디렉토리가 다음과 비슷한 목록을 갖게됩니다 (몇 번 실행 한 후).
20120106_ChangeS etc
$ls 20120106_ChangeS/etc/
cron.d
변경 사항을 더 자주 기록하도록 변경하거나 inotify를 사용하여 변경 사항이 발생할 때 수정 된 버전의 스크립트를 트리거 할 수 있습니다 /etc
.