Время работы системы при последней загрузке

Время работы системы при последней загрузке

Если система выключилась внезапно. Тогда можно ли будет сказать, в какое время она выключилась? Внезапно означает из-за сбоя питания или из-за магических клавиш sysrq. Если я что-то регистрирую каждые несколько секунд, то у меня будет ответ, но если нет, то есть ли способ?

Я использую кастомизированную консольную систему. Ядро 5.3

решение1

Вы можете определить, когда система была перезапущена несколькими способами... "uptime", "last reboot" и т. д. Определить, когда она была выключена, немного сложнее. Предполагая, что у вас есть регулярное системное ведение журнала через запущенный rsyslogd, вы можете использовать модуль immark в качестве процедуры "журналирования чего-либо каждые несколько секунд", добавив следующее в /etc/rsyslogd.conf:

$ModLoad immark
$MarkMessagePeriod <your time granularity here, in seconds>
$ActionWriteAllMarkMessages on

Вы также можете не беспокоиться и вместо этого посмотреть на одну из двух вещей в файле сообщений. Если файл ротируется при загрузке системы, вы можете просто посмотреть на дату предыдущей версии файла, используя 'ls -l', чтобы получить довольно хорошее предположение о том, когда система прекратила писать в него. Если вы не ротируете системный журнал, вы можете достичь той же точности, посмотрев на временную метку строки непосредственно перед строкой, указывающей на перезапуск. Наши перезапуски выглядят примерно так:

2020-03-29T03:20:01.529437-04:00 [hostname] rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7.2" x-pid="1615" x-info="h
ttp://www.rsyslog.com"] rsyslogd was HUPed

Если отключение не было неожиданным, все становится проще, так как системный регистратор запишет сообщение в журнал, прежде чем он завершится.

Если вы отключили системное ведение журнала, все это, конечно, становится неактуальным. Если вы все еще ведете журналы в системных журналах, вы можете получить статистику некоторых файлов там и примерно выяснить, когда система отключилась, посмотрев на время изменений:

root# stat /var/log/messages-01.gz
  File: '/var/log/messages-01.gz'
  Size: 185529          Blocks: 368        IO Block: 4096   regular file
Device: fd06h/64774d    Inode: 12689803    Links: 1
Access: (0640/-rw-r-----)  Uid: (    0/    root)   Gid: (658178/  mssgro)
Access: 2020-04-08 10:27:47.691311523 -0400
Modify: 2020-04-05 03:01:34.000000000 -0400  <=== that's what you're after ==
Change: 2020-04-07 18:16:40.252668164 -0400
 Birth: -

Выберите последний из выбранных вами файлов, и вы получите довольно точное представление о том, когда остановилась система.

Просто несколько идей, надеюсь, они помогут.

Связанный контент