Ubuntu 12.04 시스템, Tomcat 7.0.22,
ROOT.war 파일을 특정 라이브러리에 복사하는 bash 스크립트가 있는데, 이 때 Tomcat은 해당 파일을 ROOT라는 디렉터리에 배포합니다. 몇 줄 후에 bash 스크립트가 Tomcat을 다시 시작합니다(종료 후 다시 실행).
문제는--
많은 경우(아직 어느 것을 식별하지 못했지만 속도가 느린 시스템인 것으로 의심됩니다) ROOT 디렉토리가 완전히 채워지지 않았습니다. ROOT.war 배포가 완료되기 전에 Tomcat이 종료된 것 같습니다. 복사 후 다시 시작하기 전에 "sleep 10"을 입력하면 문제가 덜 일반적입니다. "20시간 수면"이라고 입력할 수도 있지만 이 달갑지 않은 지연이 필요한 시기와 여부를 알고 싶습니다.
문제는--
배포 완료 시 Tomcat으로부터 피드백을 받으려면 어떻게 해야 합니까? 아니면 Tomcat을 종료하기 전에 배포를 완료할 수 있도록 다른 방법으로 종료하시겠습니까? - CLI에서는 모든 것이 자동화되어야 하므로 bash 스크립트에 사용하는 것이 좋습니다.
답변1
Tomcat의 경우 몇 가지 옵션이 있습니다.
Tomcat v7 이후에는 여러 버전이 공존할 수 있으며 ROOT##001.war 등의 형태로 시작될 수 있습니다.Tomcat의 제로 다운타임 배포(및 롤백) 및 체크리스트
ROOT.war은 실제로 zip 파일입니다. 배포 시간이 중요한 경우 동일한 트리의 링크에 직접 압축을 풀고 압축 해제가 완료되면 프로덕션 링크를 name_old로 이동하고 디렉터리를 name으로 변경한 다음 재부팅하여 가동 중지 시간을 최소화하세요.
로컬 구성에 따라 catalina.out에서 배포가 완료되면 다른 줄이 표시될 수도 있습니다. 귀하의 마일리지는 다를 수 있으며 특정 메시지를 권장할 수 없습니다.
자동 배포를 사용하면 구성에 따라 Tomcat을 다시 시작할 필요도 없지만 새 WAR을 넣고 이전 버전을 삭제하면 됩니다.자동 배포 - 사용 사례
나는 또한 읽기를 권장합니다배포자를 배포하는 방법.
보안상의 이유로 Tomcat 설치를 업데이트하는 것이 좋습니다.Apache » Tomcat » 7.0.22: 보안 취약점 Tomcat이 자동 보안 업데이트로 관리되지 않는 경우