Как узнать причину перезагрузки Linux (last, uptimed)?

last — unix-утилита, отображающая список последних терминальных сессий с выборкой по пользователю или терминалу. last без аргументов выводит записи всех входов и выходов в обратном порядке (самые последние выводятся в самом начале), при этом выводятся время начала сессии, ее продолжительность и имя терминала, на котором велась сессия. Если сессия еще не завершена или завершилась аварийно или перезагрузкой, это тоже будет указано.

Перезагрузка системы считается инициированной входом в нее псевдопользователя с именем reboot.

  • Посмотреть записи за предыдущий месяц
    # last -f /var/log/wtmp.1

    или можно конкатенировать файлы в один

    root@cz6:/var/log# cat wtmp.1 >> wtmp
  • Посмотреть дату и время трёх последних перезагрузок, т.е. показываются 3 последние записи для псевдопользователя reboot
    # last -3 reboot
    reboot   system boot  2.6.26-2-686-big Mon Jul 29 15:46 - 10:38 (5+18:52)   
    reboot   system boot  2.6.26-2-686-big Mon Jul 29 05:55 - 15:45  (09:49)    
    reboot   system boot  2.6.26-2-686-big Sun Jul 28 14:58 - 05:54  (14:56) 

Для сохранения информации об аптайме сервера и о его предыдущих значениях, можно воспользоваться демоном uptimed.

Установка сервиса uptimed в Debian, Ubuntu:

apt install uptimed

В CentOS устанавливаем uptimed из EPEL:

# yum install epel-release
# yum install uptimed

После установки проверьте добавлен ли демон в автозагрузку (должно вывести enabled):

systemctl is-enabled uptimed
enabled

Чтобы увидеть результат наберите команду uprecords, в моем случае сразу после установки

PQ VPS сервера в 28+ странах.