Как определить причину перезагрузки в Kali Linux?
Мы можем выяснить, что вызвало перезагрузку, с помощью нескольких различных методов. Мы рассмотрим эти методы в этом посте и используем доступные программы и журналы в системе Linux для диагностики таких проблем.
Нередко обнаруживается, что система Linux перезагружается неожиданно или без видимой причины. Поиск и устранение основной причины может помочь предотвратить будущие проблемы и неожиданные простои.
Изучите журнал systemd
Если у вас нет постоянного журнала systemd, вы не сможете сохранить постоянный журнал на диске, и ваши журналы будут потеряны при перезагрузке. Вы можете сделать это, отредактировав /etc/systemd/journald.conf или вручную создав каталог, следуя приведенным ниже инструкциям:
$ sudo mkdir /var/log/journal $ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null $ sudo systemctl -s SIGUSR1 kill systemd-journald
После этого вы можете перезагрузить машину, если хотите записать в журнал более одной перезагруженной записи, хотя это и не нужно.
Чтобы получить список зарегистрированных загрузок из журнала, используйте команду ниже:
journalctl --list-boots
Как видите, в списке указано несколько ботинок. Используйте следующую команду, чтобы перейти к конкретной перезагрузке:
journalctl -b {num} -n
Изучите системные сообщения
Вы также можете связать системные сообщения с перезагрузкой, которую хотите диагностировать.
Журналы находятся в /var/log/messages в системах CentOS/RHEL . Он регистрируется в /var/log/Syslog в системах Ubuntu/Debian . Чтобы отфильтровать или обнаружить определенные данные, просто используйте команду tail или ваш любимый текстовый редактор.
Такие записи указывают на выключение/перезагрузку , инициированную администратором или пользователем root , как видно из приведенных ниже журналов. Эти сообщения различаются в зависимости от ОС и того, как инициируется перезагрузка/выключение , но проверка системных журналов всегда дает полезную информацию, даже если она не всегда достаточно точна, чтобы точно определить причину.
nano /var/log/syslog
Ниже приведен пример команды, которую можно использовать для фильтрации системных журналов:
sudo grep -iv ‘: starting|kernel: .*: Power Button|watching system buttons|Stopped Cleaning Up|Started Crash recovery kernel’
/var/log/messages /var/log/syslog /var/log/apcupsd*
| grep -iw ‘recover[a-z]*|power[a-z]*|shut[a-z ]*down|rsyslogd|ups’
Возможно, захваченные события не всегда являются конкретными. Всегда ищите предупреждения или проблемы, которые могут привести к завершению работы или сбою системы.
Изучите время перезагрузки
Вы можете использовать команды who и last , чтобы узнать, когда система была перезагружена.
who -b
last -x | head | tac
Проверьте проверенные журналы
Это фантастическое место для проверки различных событий с помощью инструмента ausearch для систем, использующих auditd . Чтобы проверить последние два элемента в журналах аудита, используйте приведенную ниже команду.
sudo ausearch -i -m system_boot,system_shutdown | tail -4
Будет сообщено о двух последних отключениях или перезагрузках. Все должно быть в порядке, если это сообщает о SYSTEM_SHUTDOWN , за которым следует SYSTEM_BOOT . Если он возвращает две или более строки SYSTEM_BOOT подряд или только одну строку SYSTEM_BOOT , то система не завершает работу корректно. Ниже приведен пример типичного вывода:
—-
type=SYSTEM_SHUTDOWN msg=audit(Monday 28 June 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=’ comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success’
—-
type=SYSTEM_BOOT msg=audit(Monday 28 June 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=’ comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success’
В приведенном выше выводе перечислены два последовательных сообщения SYSTEM_BOOT , которые могут свидетельствовать о некорректном завершении работы, если они связаны с системными журналами.
Вывод
Одной команды или одного файла журнала не всегда может быть достаточно для определения причины перезагрузки Linux . В результате знание команд и журналов, которые записывают системные события, всегда полезно и может сократить время, необходимое для обнаружения основной причины.
Приведенные выше примеры могут помочь вам приступить к устранению неполадок. Вы можете быть уверены, что знаете, что произошло и как перезагрузилась ваша система, если вы используете сочетание таких инструментов и журналов.