Я знаю это uptime
печатает время, машина была в порядке, но является там более легким (надежным) способом получить дату запуска, чем считание в обратном порядке от этого вывода?
Я пытался озираться /proc
, но не нашел ничего уместности. Существует также строка как это на моем dmesg
:
[ 0.673492] rtc_cmos rtc_cmos: setting system clock to 2011-03-14 14:26:52 UTC (1300112812)
Но я задаюсь вопросом, является ли этот метод распределением и агностиком версии ядра?
Я нашел некоторые команды здесь. Попробовать who -b
или last reboot | head -1
.
who
дает числовые даты, в то время как last reboot
возвраты сократили день / имена месяца.
Это запрашивает время работы от ядра и отображает его в локальном часовом поясе:
date -d "`cut -f1 -d. /proc/uptime` seconds ago"
Будьте осторожны относительно других опций. last
команда прекратит работать как только wtmp
был повернут. who
команда зависит от доступности и целостности utmp
. И /proc/1
мог бы иметь текущую дату вместо даты времени начальной загрузки и мог даже быть недоступным в укрепленной системе.Править: dmesg
только имеет фиксированную длину, назад буферизуют, таким образом, это unrealiable, также. Журналы ядра могут быть в /var/log
но большинство дистрибутивов только сохраняет 8 недель их.
Самый простой путь состоит в том, чтобы надеяться видеть, когда/sbin/init запустился (это всегда - первый процесс, который будет запущен после загрузок ядра):
# ls -ld /proc/1
dr-xr-xr-x 7 root root 0 2011-03-27 23:54 /proc/1
Таким образом, я вижу что моя машина, загруженная без 6 минут полночь 27-го марта 2011.
Если Вы хотите использовать его в сценариях, можно использовать stat
команда вместо этого:
# stat --printf='%Y' /proc/1
1301266491
%Y
указывает время, так как каталог был в последний раз изменен (время создания процесса) в секундах с эпохи (1/1/70) и является стандартной меткой времени Unix.
В Linux,
ls -ld /proc
кажется, дает мне, в чем я нуждаюсь. Сообщение выше нечетно. /proc/uptime
не содержит значение даты – оно должно было бы быть вычтено с текущего времени. Возможно, он имел в виду:
date -d @$(( $(date +%s) - $(cut -f1 -d. /proc/uptime) ))