서버 업데이트를 확인하고 하나씩 설치한 다음 다시 시작이 필요한지 확인하는 cronjob을 실행하고 있습니다. 이 스크립트는 서버를 다시 시작해야 할 경우 서버를 시작합니다 reboot
.
하드웨어 시계는 부팅 시 사용되며 시스템 시계가 사용되기까지 1분 정도 소요됩니다.
시스템 시계로 전환하기 전에 로그에는 서버가 약 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시간 지연됩니다(표준 시간대에는 일광 절약 시간이 적용되지 않습니다).
에서 man hwclock
:
Linux와 같은 POSIX 시스템은 시스템 시계가 UTC 시간 단위로 실행되도록 설계되었습니다.
다음을 수행하여 쉽게 수정할 수 있습니다.
timedatectl --adjust-system-clock set-local-rtc 0
모든 악의 근원은 RTC가 자신이 설정한 TZ를 기억하지 못한다는 것입니다. 이 RTC time
줄에는 TZ 표시가 없습니다. 하드웨어에 시간을 저장하고 파일에 TZ를 저장하면( /etc/adjtime
예:@spuratic 씨참고) 두 정보 간의 동기화가 손실되기 쉽습니다.
완전성을 기하기 위해 IMHO는 하드웨어 시계가 로컬로 설정된 유일한 경우는 이중 부팅 시스템입니다.윈도우.