Если система выключилась внезапно. Тогда можно ли будет сказать, в какое время она выключилась? Внезапно означает из-за сбоя питания или из-за магических клавиш 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: -
Выберите последний из выбранных вами файлов, и вы получите довольно точное представление о том, когда остановилась система.
Просто несколько идей, надеюсь, они помогут.