timedatectl 문제

timedatectl 문제

안녕하세요, timedatctl이 어떻게 작동하는지 이해하도록 도와주실 수 있나요?

  • 시스템 시계 sysnc가 인터넷을 통해 NTP 서비스를 사용하는 경우 시스템 시간은 현재 날짜 및 시간으로 업데이트됩니다.

  • 시스템 시계가 NTP와 동기화되면 11분마다 RTC가 업데이트됩니다. 그렇죠?

    root@NB2-SOC-BSP-ALPHA-V1:~# date --set="2025-02-02 12:00:00"
    Sun Feb  2 12:00:00 IST 2025
    root@NB2-SOC-BSP-ALPHA-V1:~# date
    Sun Feb  2 12:00:02 IST 2025
    
    root@NB2-SOC-BSP-ALPHA-V1:~# timedatectl
            Local time: Sun 2025-02-02 12:00:04 IST
        Universal time: Sun 2025-02-02 06:30:04 UTC
              RTC time: Sat 2022-03-05 11:07:29    
             Time zone: Asia/Kolkata (IST, +0530)  
    System clock synchronized: no                         
           NTP service: inactive                   
       RTC in local TZ: no 
    
    root@NB2-SOC-BSP-ALPHA-V1:~# timedatectl set-ntp true 
    root@NB2-SOC-BSP-ALPHA-V1:~# timedatectl
            Local time: Fri 2022-10-14 14:22:35 IST
        Universal time: Fri 2022-10-14 08:52:35 UTC
              RTC time: Sat 2022-03-05 11:07:39    
             Time zone: Asia/Kolkata (IST, +0530)  
    System clock synchronized: yes                        
           NTP service: active                     
       RTC in local TZ: no 
    
     root@NB2-SOC-BSP-ALPHA-V1:~# timedatectl
            Local time: Fri 2022-10-14 14:22:41 IST
        Universal time: Fri 2022-10-14 08:52:41 UTC
              RTC time: Sat 2022-03-05 11:07:45    
             Time zone: Asia/Kolkata (IST, +0530)  
      System clock synchronized: yes                        
           NTP service: active                     
       RTC in local TZ: no                         
    

NTP 서비스를 활성화한 후 현지 시간 + 세계 시간만 업데이트되고 RTC 시간은 업데이트되지 않습니다. 이유는 무엇입니까?

답변1

다음은 두 번째 부분(hwclock 매뉴얼 페이지에서 가져옴)을 이해하는 데 도움이 될 수 있습니다.

일부 시스템에서는 하드웨어 시계를 동기화 상태로 유지하는 또 다른 방법이 있습니다. 알아두어야 할 사항입니다. Linux 커널에는 11분마다 시스템 시간을 하드웨어 시계에 복사하는 모드가 있습니다. 이 모드는 컴파일 타임 옵션이므로 모든 커널에 이 기능이 있는 것은 아닙니다. 이는 NTP와 같은 복잡한 기능을 사용하여 시스템 시계를 동기화할 때 좋은 패턴입니다. (NTP는 시스템 시간을 네트워크 어딘가에 있는 시간 서버 또는 시스템에 연결된 무선 시계와 동기화하는 방법입니다. RFC 1305를 참조하세요.)

커널이 "11분 모드" 옵션으로 컴파일되면 커널의 시계 규칙이 동기화될 때 활성화됩니다. 이 상태에서는 커널 time_status 변수의 비트 6(마스크 0x0040에 설정된 비트)이 설정 해제됩니다. 이 값은 adjtimex --print 또는 ntptime 명령의 "status" 줄로 출력됩니다.

커널의 시계 규칙을 동기화된 상태로 설정하여 "11분 모드"를 활성화하려면 NTP 데몬과 같은 외부 영향이 필요합니다. hwclock --hctosys를 포함하여 시스템 시계를 구식 방식으로 설정하는 프로그램을 실행하여 끌 수 있습니다. 그러나 NTP 데몬이 계속 실행 중이면 다음에 시스템 시계를 동기화할 때 다시 11분 모드가 켜집니다.

시스템이 "11분 모드"로 실행 중인 경우 시작 스크립트에서 --hctosys 또는 --systz를 사용해야 할 수 있습니다. 특히 하드웨어 시계가 로컬 시간 척도를 사용하도록 구성된 경우 더욱 그렇습니다. 커널이 하드웨어 시계가 사용하는 시간 단위를 알지 못하는 경우 잘못된 시간 단위로 손상될 수 있습니다. 커널은 기본적으로 UTC를 사용합니다.

시스템 시계를 설정하는 첫 번째 사용자 공간 명령은 하드웨어 시계가 사용하는 시간 척도를 커널에 알려줍니다. 이는 Permanent_clock_is_local 커널 변수를 통해 발생합니다. --hctosys 또는 --systz가 첫 번째인 경우 adjtime 파일 또는 적절한 명령줄 인수를 기반으로 이 변수를 설정합니다. 이 기능을 사용하고 하드웨어 시계 시간 단위 구성이 변경되면 커널에 알리기 위해 재부팅이 필요합니다.

hwclock --adjust는 NTP "11분 모드"와 함께 사용하면 안 됩니다.

11분 모드가 커널의 정상적인 기능인지는 모르겠습니다. 나는 그렇게 생각한다.

또한 systemd-timedated.service가 실행 중인지 확인하세요.

답변2

시스템 시계가 인터넷을 통해 NTP 서비스와 동기화되면 시스템 시간이 현재 날짜 및 시간으로 업데이트됩니다.

예, 시스템이 너무 동기화되지 않아 NTP 서비스가 뭔가 크게 잘못되었다고 생각하여 포기하지 않는 한 그렇습니다.

시스템 시계가 NTP와 동기화되면 11분마다 RTC가 업데이트됩니다. 그렇죠?

가능하지만 항상 그런 것은 아닙니다. Classic은 ntpd기본적으로 chronyd이 키워드를 구성 파일에서 사용할 때만 rtcsync수행합니다 /etc/chrony/chrony.conf. 다른 NTP 동기화 서비스 구현에 대해서는 해당 특정 구현에 대한 설명서를 참조하세요.

관련 정보