У меня есть скрипт, который опирается на время запуска Ubuntu 18.04:
uptime -s
Я сохраняю это значение в файле при запуске сценария. Я заметил, когда я начал Ubuntu, это время было:
uptime -s
2019-01-07 18:01:59
После выполнения более двух часов одна и та же команда сообщает о другом времени (все это время я оставался в той же учетной записи):
uptime -s
2019-01-07 18:01:58
Я ожидал бы, что команда сообщит то же самое время в течение того же самого сеанса входа. Но время как-то меняется с 1 секундой (сейчас раньше).
Это проблема ОС или инструмента?
https://elixir.bootlin.com/linux/latest/source/fs/proc/uptime.c
struct timespec64 uptime;
ktime_get_boottime_ts64(&uptime);
Как я могу получить время работы системы без таких колебаний?
Обновить:
Хотя я нашел ответ в: Linux: Получение даты и времени запуска системы
Но я ошибся, просто повезло, после еще нескольких тестов видно, что это проблема ОС, время меняется между 58 и 59 в зависимости от наносекунд:
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.670091767
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.627339874
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.708332394
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.821526069
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.604129974
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.469767199
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:59.264900963
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.986611962
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.851955874
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:58.958194732
$ date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%F %T.%N"
2019-01-07 18:01:59.066728481
Мне кажется, нет надежной системы безотказной работы до второго уровня.