Как получить текущую временную метку часов реального времени (RTC)?

Я хотел бы получить текущую метку часов реального времени в моем скрипте BASH. Команда hwclock может распечатать текущее время, но это не метка времени.

Я рассмотрел синтаксический анализ вывода hwclock и затем преобразовал результаты в метку времени, но кажется, что вывод hwclock будет меняться, если текущая локаль будет изменена. Поэтому, если я передам свой сценарий своим клиентам, они могут использовать разные локали, чем мои, и мои результаты анализа могут быть неверными (и, конечно, временная метка будет неправильной).

Итак, мой вопрос, что было бы лучшим способом получить метку времени от RTC? Заранее спасибо.

1 ответ

Когда вы звоните hwclock -D, вы получите вывод наподобие следующего, который содержит метку времени:

hwclock from util-linux 2.27.1
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2018/09/27 09:03:46
Hw clock time : 2018/09/27 09:03:46 = 1538039026 seconds since 1969
Time since last adjustment is 1538039026 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Thu 27 Sep 2018 11:03:45 CEST  .749554 seconds

Следующая команда анализирует этот вывод для извлечения фактической отметки времени:

sudo hwclock -D | grep "Hw clock time" | sed "s/.* = \([0-9]\+\) seconds .*/\1/"
Другие вопросы по тегам