2008-08-26 5 views
3

라이브 웹 사이트에서 백업 및 개정 관리를 유지하는 가장 좋은 솔루션은 무엇입니까?라이브 웹 사이트에서 백업 및 개정 관리를 유지하는 최상의 솔루션은 무엇입니까?

저는 직장 생활의 일부로 여러 라이브 웹 사이트에서 일합니다. 시간이 지남에 따라 라이브 폴더의 백업을 효율적으로 유지 관리해야합니다. 또한 이러한 사이트를 업데이트하는 것은 고통 스러울 수 있습니다. 특히 어떤 이유로 든 변경 사항이 실제 환경에서 중단되는 경우 특히 그렇습니다.

이상적인 것은 무엇보다 간편한 소스 제어입니다. SVN을 잠시 동안 구현했는데, 이는 백업 및 개정 제어 (일시적인 변경 또는 변경 사항의 쉬운 되돌리기)를위한 준 솔루션으로서 매우 유용했습니다. 특히 불행히도 SVN은 모든 경우에 .VN 숨겨진 디렉토리를 배치하여 문제를 일으킬 수 있습니다. 다른 개발자는 폴더 구조를 변경하거나 웹 사이트 디렉토리를 복사/이동합니다. 나는 이것이 교육 등의 문제라는 주장을 들었다. 그러나 SVN에 의해 ​​취해진 접근법은 단순히 우리에게 실질적인 해결책이 아니다.

증분 백업 솔루션이 더 좋을 수도 있습니다.

다른 가능성은 다음과 같습니다 문제가 될 경우에만 명령 줄입니다

  1. SVK을. 게다가, 나는 이것이 얼마나 적절한 지 확신 할 수 없다.
  2. Mercurial이 경우에 필요하지 않은 분산 된 구성 요소를 숨기고 일부 개발자에게는 불필요하게 복잡 할 수 있습니다.

    나는 Mercurial을 사용하여 간단하게 실험했지만 저장소를 별도로 유지하고 라이브 폴더 작업 복사본과 지속적으로 동기화되도록하는 좋은 방법을 찾을 수 없습니다. 어쩌면 다른 백업 솔루션과 결합 된 소스 제어 솔루션 (저장소 및 라이브 폴더를 같은 위치로 만들기)이 될 수있는 방법 일 수 있습니다. 의욕의

    하나의 단점은 종종 정말하지 않은 파일 업로드 등

  3. Rsync위한 자리 위치로 빈 폴더가 웹 사이트에 대한 문제가있는 소스 제어에서 빈 폴더를 배치하지 않는다는 것입니다 조사.

라이브 웹 사이트의 백업을 유지하는 가장 좋은 방법에 대해 알려 주시면 감사하겠습니다. 이전 버전을 신속하게 검색 할 수있는 가장 쉬운 방법입니다.

답변 응답 :

  • @Kibbee :

    • 그것은 VSS하지만 아무것도없는 친숙 함과 시간의 부족/배울 수있는 노력으로 교육에 대해 많이 아니에요 다른 것.

    • xcopy/7-zip 방식은 합리적인 것 같지만 신속하게 많은 공간을 차지할 것입니까?

    • 소스 제어에 관해서는 소스 제어에서 "이제 폴더 상태입니다. 처리 할게요. 당신의 잘못, 나는 열심히 실패하기보다는 새로운 역사를 시작합니다. "

  • @ 스티브 M :

    • 그래 그게 일을 더 좋은 방법이지만 중요한 문화적 변화를 요구한다. 나는이 접근법을 매우 좋아한다고 말했다.
  • @mk

  • :
    • 니스, 내가 배포 할 rsync를 사용하는 방법에 대해 생각하지 않았다

      . 차이점 만 업로드합니까? 우리가 변경을 할 때마다 전체 라이브 디렉토리를 덮어 쓰는 것은 사이트 다운 타임으로 인해 문제가 될 수 있습니다.

나는 아직도 전통적인 옵션

답변

4

당신은 여전히 ​​SVN을 사용할 수 있습니다 어떤이 있는지 궁금하지 않지만 대신 실제 환경에서 체크 아웃을하고의, 아니, 그런 식으로 내보내기를 할 .svn 디렉토리가 생성됩니다. 단점은 라이브 환경에서 코드 변경이 발생하지 않는다는 것입니다. 이것은 좋은 일입니다.

일반적으로 프로덕션 시스템의 코드 변경 사항을 허용해서는 안됩니다. 변경 사항은 개발/테스트/UAT 환경에서 작성하고 테스트 한 다음 OK로 확인되면 SVN에서 RELEASE-x-x-x와 같은 코드로 태그를 지정할 수 있습니다. 그런 다음 라이브 시스템에서 해당 태그를 사용하여 코드를 내 보냅니다.

1

사용자가 선택한 모든 소스 제어 솔루션은 파일을 이동, 삭제 또는 추가하고 소스 제어 시스템에 알려주지 않으면 문제가 발생할 수 있습니다. 이 문제를 해결할 수있는 소스 제어 항목에 대해서는 잘 모르겠습니다.

프로젝트 [1]에서 일하는 사람들을 교육 할 수없는 경우 일일 스냅 샷을 사용해야 할 수도 있습니다. 네트워크 드라이브에 xcopy를 사용하는 일괄 처리 파일과 같은 간단한 작업과 명령 줄에서 압축하여 너무 많은 공간을 차지하지 않는 간단한 방법이 아마도 가장 간단한 해결책 일 것입니다.

[1] 나는 이것을 매우 믿지 않을 것이다. 사람들이 너무 완고하고 배울 의도가 없거나 "여분의 일"을하는 경우가 더 많을 것이다. 이전 버전으로 돌아 가야 할 때 소스 제어가 얼마나 많은 시간을 절약 할 수 있었는지, 또는 2 명이 동일한 파일을 편집했는지 신경 쓰지 마십시오.

2

옵션 3을 사용합니다. 나는 여분의 검사와 함께 이것을하기 위해 bash 스크립트를 작성했지만 여기에는 그것이하는 일의 기초가있다.

  1. 살기 위해 태그를 만듭니다.
  2. 해당 태그에서 svn 내보내기를 실행하십시오.
  3. rsync로 살기.

지금까지 작업이 완료되었습니다. 우리는 사용자 충돌에 대해 걱정할 필요가 없으며 프로덕션 컴퓨터에서 svn을 실행하기위한 별도의 사용자를 가질 수도 있습니다.

+0

안녕하세요 당신은 그 bash 스크립트를 공유 할 수 있습니까, 나는 같은 접근 방식을 구현하려고합니다. 고마워. –

1

rsync는 차이점 만 업로드합니다. 나는 그것을 개인적으로 사용하지 않았다. 그러나 Mark Pilgrim은 심지어 오래전에 그것을 어떻게 작성 했는가? handles binary diffs brilliantly.

svn + rsync는 환상적인 솔루션처럼 들립니다. 나는 그것을 미래에 시험해야 할 것이다.

관련 문제