Чи можна встановити NTP для завантаження часу з файлу, якщо він не може завантажуватися з мережі?


3

Я переглянув документацію, але не можу знайти нічого подібного. Ситуація така, що у мене є BeagleBone Black, у якого немає справжнього годинника. За замовчуванням комп'ютер завантажується, думаючи, що це 1999 рік (що чудово підходить для вечірок, але ...). NTP виправляє це, але тільки якщо мережа підключена. Інакше знову 1999 рік. І, на жаль, я встановив пристрій у тому місці, де він не може отримати доступ до Інтернету, а також потрібно реєструвати час, який має хоч якийсь сенс.

Мені прийшло в голову, що це було б добре для моїх цілей, якби був спосіб змусити NTP читати час з файлу, якщо мережа була недоступною. Я думаю, що файл часу буде записаний або як робота cron, або щось у самому NTP, що підтримувало стан цього файлу.

Чи є щось подібне для NTP? Чи є альтернативні інструменти, які б вирішили те, що мені потрібно? Зокрема, це не буде занадто сильним болем, щоб налаштувати на BBB?


2
Чи варто було назвати це "Як я можу зупинити мою Біглбон від гуляння, як це у 1999 році?"
Майкл Франк

Відповіді:


4

Ви хочете fake-hwclockпакет. Він спеціально розроблений для подібних ситуацій. Опис зі сторінки пакунків Debian:

підроблений годинник: Збереження / відновлення системного годинника на машинах без роботи обладнання RTC

Деякі машини не мають блоку робочого часу в режимі реального часу (RTC) або не мають драйвера для обладнання, яке існує. fake-hwclock - це простий набір сценаріїв, щоб періодично зберігати поточний годинник ядра (у тому числі при відключенні) та відновлювати його під час завантаження, щоб системний годинник тримався принаймні близько до реального часу. Це зупинить деякі проблеми, які можуть бути спричинені системою, яка вважає, що вона пройшла шлях до 1970 року, наприклад, необхідність перевірки файлової системи при кожному завантаженні.

Крім цього, використання NTP все ж рекомендується боротися з фальшивим годинником "дрейфуванням" під час зупинки обладнання або перезавантаження.


2

У вас може бути кронжаб, який пробіг кожні кілька хвилин так:

date +%s > /root/lasttime

Потім у вас є ще одна cronjob (якщо припустимо, що у вас є cron, який розуміє розширені налаштування часу, інакше в сценарії завантаження):

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

Перший зберігає час у секундах з епохи /root/lasttime, потім перезавантаження зчитує час з файлу та встановлює дату.

Тож ваш час буде неправильним через кількість часу, коли бігль був вимкнений. Можливо, у вас є гоночна умова, коли перша робота з крон може виконуватись до другої, і тому встановіть час на 1999 рік, тому краще зробити її нечастою або поставити реєстрацію, щоб переконатися, що час має сенс перед її зберіганням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.