QA 환경에서 war를 여러 번 배포했지만 Linux 시스템에서 date 명령을 실행하면 내가 설정한 올바른 PST 시간이 표시되지만 로그에는 다른 시간이 표시됩니다. 동일한 WAR이 개발 환경에도 배포되는데, 이는 완벽하게 괜찮습니다.
답변1
세션의 시간대 설정은 반드시 시스템 기본 시간대와 동일할 필요는 없습니다. 세션에 대해 TZ 환경 변수를 설정하는 경우 응용 프로그램을 수동으로 시작할 때와 시스템이 응용 프로그램을 자동으로 시작할 때(또는 경우) 모두 설정되도록 응용 프로그램 시작 스크립트에서도 설정해야 합니다. 시작 시 응용 프로그램.
시스템 로그는 일반적으로 시스템의 기본 시간대로 출력됩니다. 애플리케이션 로그는 애플리케이션이 시작될 때 TZ 환경 변수에 지정된 모든 시간대로 출력될 수 있습니다. TZ 변수가 설정되지 않은 경우 시스템 기본 시간대가 사용됩니다.
date -u
시스템에 올바른 UTC 시간 정보가 있는지 확인하는 데 사용됩니다 . UTC 값은 틀리지만 현지 시간 값은 맞는 것 같다면 타임존 설정에 문제가 있는 것입니다.
시스템 기본 시간대는 디렉토리 에서 해당 시간대 파일을 복사하여 /usr/share/zoneinfo
결정 됩니다 /etc/localtime
.
RedHat 및 관련 배포판에는 /etc/sysconfig/clock
기본 시간대 사양도 포함되어 있지만 실제로는 그렇지 않습니다.놓다기본 시간대: 대신통지하다/etc/localtime
운영 체제 설치 프로그램이 입력한 시간대 파일입니다. 지정된 시간대를 변경하는 것만으로는 시스템 기본 시간대가 실제로 변경되지 않습니다. 일치하도록 /etc/sysconfig/clock
파일도 업데이트해야 합니다 . /etc/localtime
이로 인해 여러 새로운 시스템 관리자가 어려운 위치에 놓이게 되었습니다.