Я знаю о uptime
команде, но она возвращает секунды с момента загрузки, поэтому, если я просто вычту это число из текущей метки времени, теоретически я могу получить другой результат, если изменится секунда после того, как я прочел время работы и текущую метку времени. uptime -s
это то, что я хочу, но он не доступен на Centos (как рассчитывается, кстати?). Могу ли я просто получить ctime из / proc dir? Кажется, это дает мне правильный номер, но мне интересно, есть ли в каждой системе Linux / proc, созданный при загрузке.
13
HH:MM:SS
? Что-то другое?Ответы:
Прежде всего,
crtime
это сложно на Linux . Тем не менее, работает что-то вродеили
вероятно, именно то, что вам нужно.
/proc
Файловая система определяется LFS стандартного и должна быть там для любой системы Linux, а также для большинства (все?) UNIXen.В качестве альтернативы, если вам не нужна точность в секундах, а вам нужна только временная метка, вы можете использовать
who
:From
man who
: -b, --boot время последней загрузки системыВы можете преобразовать это в секунды, начиная с эпохи, используя GNU
date
:источник
utmp
(init) как запись «system boot» и читается пользователемwho -b
. Системное время может быть неправильным до тех пор, пока не начнется загрузка.who -b
на моем RPI говорит, что он загрузился в 1970 году, а другой ARM без RTC говорит, что 2008 ;-)Другое решение -
/proc/stat
этоbtime
[1]:Пример вывода:
Это отметка времени с начала эпохи.
[1] http://man7.org/linux/man-pages/man5/proc.5.html
источник