일부 파일을 보낸 후 재동기화하고 싶음

일부 파일을 보낸 후 재동기화하고 싶음

프로덕션 형식의 일부 HTML 파일을 웹 서버에 재동기화하고 싶습니다. 프로덕션 형식으로 가져오려면 스크립트 태그에 ".production" 문자열을 삽입해야 합니다. 다음 sed 명령을 사용하여 이 작업을 수행할 수 있습니다.

sed 's/steal\.js/steal\.production\.js/g' */*.html

-i나는 파일을 제자리에 sed하고 rysync한 다음 완료되면 반환 할 수 있다는 것을 알고 있지만 -i원격 시스템의 대상 파일에 대해 rsync stdout과 같은 작업을 수행할 수 있기를 원합니다. 이렇게 하면 전송 중에 스크립트 취소로 인해 HTML 파일이 손상되는 것에 대해 걱정할 필요가 없습니다.

이 문제를 해결하는 방법에 대한 제안 사항이 있습니까?

답변1

약간의 여유 디스크 공간이 있는 경우(요즘 싸죠?) 개발 상자에서 개발 트리에서 프로젝트의 두 번째 복사본("임시" 트리)으로 로컬 rsync를 수행할 수 있습니다. 그런 다음 스테이징 트리에 필요한 프로덕션 수정을 수행하고 스테이징 트리에서 프로덕션 서버로 "실제" rsync를 수행합니다.

배포 속도를 높이기 위해 임시 트리를 유지하거나 나중에 삭제하여 공간을 확보할 수 있습니다.

또는 프로덕션 서버에 임시 트리를 유지할 수 있습니다. 이 경우 rsync를 한 번 수행하고 변경한 다음 스테이징 트리가 이제 프로덕션 트리가 되고 이전 프로덕션 트리가 이제 스테이징 트리가 되도록 몇 가지 빠른 디렉터리 이름 변경을 수행할 수 있습니다. 이렇게 하면 프로덕션 환경에서 부분적으로 업데이트된 웹사이트를 가질 수 없습니다.

답변2

개발 및 프로덕션 상자에서 다른 파일 이름에 액세스해야 하는 해킹을 제거하는 것이 좋습니다.

  • 버전 제어를 사용하여 동일한 프로젝트의 개발 및 프로덕션 분기를 유지할 수 있습니다. 계속해서 개발을 프로덕션 브랜치에 병합하되 해당 브랜치에 커밋하기 전에 작은 스크립트를 사용하여 코드를 프로덕션에 유지하세요. 서버를 사용하여 프로덕션 브랜치를 확인하거나 해당 브랜치를 rsync하십시오.
  • 일부 서버 측 코드를 사용하여 사용할 파일 이름을 결정할 수 있습니다.if (hostname = productionserver) ...
  • 서버 측 리디렉션을 사용하면 프로젝트 내의 호스트 이름이나 일종의 태그 파일을 기반으로 동일한 요청 URL에서 다양한 파일을 제공할 수 있습니다.

관련 정보