네트워크에서로드 할 수없는 경우 파일에서 시간을로드하도록 NTP를 설정할 수 있습니까?


3

설명서를 보았지만 이와 같은 것을 찾을 수 없습니다. 상황은 실제 시계가없는 BeagleBone Black이 있다는 것입니다. 기본적으로 컴퓨터는 1999 년이라고 생각합니다 (파티에는 좋지만 ...). NTP가이 문제를 해결하지만 네트워크가 연결된 경우에만 가능합니다. 그렇지 않으면 다시 1999입니다. 안타깝게도 인터넷에 액세스 할 수없는 위치에 장치를 설치해야하며 적어도 어느 정도 의미 가있는 로깅 시간이 필요합니다 .

네트워크를 사용할 수없는 경우 NTP가 파일에서 시간을 읽을 수있는 방법이 있다면 내 목적에 적합하다는 것이 나에게 발생했습니다. 시간 파일이 cron 작업으로 작성되거나 NTP 자체에서이 파일의 상태를 유지하는 것으로 작성 될 것이라고 생각합니다.

NTP에 이와 같은 것이 있습니까? 필요한 것을 달성 할 수있는 대체 도구가 있습니까? 특히 BBB에 너무 많은 고통을 안겨주지 않겠습니까?


2
"Beaglebone이 1999 년처럼 파티를하지 못하게하려면 어떻게해야합니까?"
Michael Frank

답변:


4

당신은 fake-hwclock패키지를 원한다 . 이러한 상황에 맞게 특별히 설계되었습니다. 데비안 패키지 페이지의 설명 :

fake-hwclock : RTC 하드웨어가 작동하지 않는 컴퓨터에서 시스템 시계 저장 / 복원

일부 시스템에는 작동하는 실시간 클록 (RTC) 장치가 없거나 존재하는 하드웨어에 대한 드라이버가 없습니다. fake-hwclock은 시스템 스크립트가 최소한 실시간에 가깝게 유지되도록 커널의 현재 시계를 주기적으로 저장하고 (종료시 포함) 부팅시 복원하는 간단한 스크립트 세트입니다. 이렇게하면 매 부팅마다 파일 시스템 검사를 수행해야하는 등 1970 년으로 거슬러 올라간 시스템으로 인해 발생할 수있는 일부 문제가 중지됩니다.

또한 하드웨어가 정지되거나 재부팅되는 동안 가짜 시계 "표류"를 처리하기 위해 NTP를 사용하는 것이 좋습니다.


2

다음과 같이 몇 분마다 실행되는 cronjob을 가질 수 있습니다.

date +%s > /root/lasttime

그런 다음 다른 크론 작업을 수행하십시오 (고급 시간 설정을 이해하는 크론이 있다고 가정하고 그렇지 않으면 부팅 스크립트에서).

@reboot date +%s -s `cat /root/lasttime`

첫 번째는 에포크 이후의 시간을 초 단위로 저장 /root/lasttime한 다음 재부팅 시간은 파일에서 시간을 읽고 날짜를 설정합니다.

따라서 비글이 꺼진 시간에 따라 시간이 잘못됩니다. 첫 번째 크론 작업이 두 번째 크론 작업보다 먼저 실행될 수있는 경쟁 조건이있을 수 있으므로 시간을 1999로 설정하십시오. 따라서 저장하기 전에 시간이 적절하지 않은지 확인하거나 체크인하는 것이 가장 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.