
서버 업데이트를 확인하고 하나씩 설치한 다음 재부팅이 필요한지 확인하는 cronjob이 실행 중입니다. 재부팅이 필요한 경우 스크립트가 reboot
서버를 수행합니다.
하드웨어 시계는 부팅 시 사용됩니다. 시스템 시계가 사용되기까지 1분 정도 걸립니다.
시스템 시계로 전환하기 전에 로그에는 서버가 한 시간 정도 늦었다고 표시됩니다. 서버가 하드웨어에서 시스템 시계로 전환하면 로그가 점프하고 한 시간 정도 앞서서 cron 데몬을 트리거합니다. 서버 업데이트 스크립트 시간이 이미 경과되어 다시 실행됩니다.
스크립트는 일주일에 한 번만 실행되도록 되어 있었기 때문에 재부팅 루프가 발생합니다.
실행하면 hwclock --systohc
시스템 시계가 하드웨어 시계와 동기화되지만 영구적이지는 않습니다. 재부팅 후 시차가 다시 꺼집니다.
내 질문은
시스템 시계를 하드웨어 시계와 영구적으로 동기화하려면 어떻게 해야 합니까?
출력 timedatectl status
:
Local time: Tue 2018-08-28 12:05:37 CEST
Universal time: Tue 2018-08-28 10:05:37 UTC
RTC time: Tue 2018-08-28 10:05:37
Time zone: n/a (CEST, +0200)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: yes
DST active: yes
Last DST change: DST began at
Sun 2018-03-25 01:59:59 CET
Sun 2018-03-25 03:00:00 CEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2018-10-28 02:59:59 CEST
Sun 2018-10-28 02:00:00 CET
Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
- CentOS Linux 릴리스 7.5.1804(코어)
- VPS 서버입니다.
- 유럽/암스테르담
답변1
귀하의 의견에 따르면 timedatectl status
:
- 하드웨어 시계(RTC)가 UTC 시간(
RTC time
)으로 설정되어 있습니다. - 시스템은 하드웨어 시계를 현지 시간(
RTC in local TZ
)으로 평가하도록 설정되어 있습니다.
결과적으로 부팅 시 시스템 시계가 1시간 늦게 설정됩니다(DST가 없는 시간대).
에서 man hwclock
:
Linux와 같은 POSIX 시스템은 시스템 시계가 UTC 시간 단위로 작동하도록 설계되었습니다.
다음을 실행하면 쉽게 수정할 수 있습니다.
timedatectl --adjust-system-clock set-local-rtc 0
모든 악의 근원은 RTC가 설정된 TZ를 기억하지 못한다는 것입니다. 라인 에는 RTC time
TZ 표시가 없습니다. 하드웨어 부분에 시간을 보관하고 파일에 TZ를 보관할 때 /etc/adjtime
(@mr.spuratic언급), 두 정보 간의 동기화가 손실되기 쉽습니다.
완전성을 기하기 위해 IMHO는 하드웨어 시계를 로컬로 유지하는 유일한 상황은 듀얼 부팅 시스템입니다.윈도우.