Linux /etc/ 디렉토리 동기화

Linux /etc/ 디렉토리 동기화

다른 컴퓨터의 프로토타입으로 사용되는 Linux(Ubuntu 서버)가 설치된 가상 컴퓨터가 있습니다. 가끔 프로토타입 시스템을 변경하고 이 변경 사항을 다른 시스템에서 가져오고 싶을 때가 있습니다.

나는 Puppet, cfengine 및 FAI에 대해 알고 있지만 필요할 때 ssh를 통해 작동하는 rsync 스크립트와 같은 쉬운 것을 원합니다.

주요 목표는 /etc/ 디렉토리입니다. 하지만 /etc/passwd /etc/shadow 등과 같은 일부 개인 파일을 동기화하고 싶지 않습니다. 나는 그것을 모두 모른다.

내 작업에 대한 팁이 있나요? 누군가 그러한 rsync 스크립트를 가지고 있을 수도 있습니다.

답변1

간단한 해결책은 git을 설정하는 것입니다.

  • 디렉터리 에 git 저장소를 설정하세요 /etc.
  • 원격 시스템으로 마이그레이션하고 싶지 않은 항목을 제외하려면 무시 파일을 설정하십시오.
  • 무시되지 않은 모든 것을 저장소에 추가하십시오.
  • 필요에 따라 개발 저장소에서 프로덕션을 가져옵니다.

답변2

당신은 이미 답을 가지고 있습니다. rsync는 원하는 작업을 수행할 수 있고, 원할 때 ssh를 통해 실행되며, 동기화하지 않으려는 파일을 쉽게 무시할 수 있습니다.

rsync -avP source:/etc/ /etc/ --exclude-from list-of-files-to-exclude

그리고 제외할 파일 목록을 추가하면 됩니다 list-of-files-to-exclude. 예를 들어:

$ cat list-of-files-to-exclude
/passwd
/shadow

물론 저는 여전히 버전 관리와 꼭두각시와 같은 좀 더 정교한 것을 강력히 권장합니다. 그리고 파일 소유권과 권한을 잘 관리하세요.

관련 정보