Вывод «последней» команды

17

Кто-нибудь может объяснить мне, что означает последний столбец вывода lastкоманды? Меня особенно интересует его значение по отношению к rebootпсевдопользователю.

reboot   system boot  2.6.32-28-generi Sat Feb 12 08:31 - 18:09 (9+09:37)   

Что это значит 9 + 09: 37?

Андреа Спадаччини
источник

Ответы:

18

rebootи shutdownявляются псевдопользователями для перезагрузки и выключения системы, соответственно. Это механизм регистрации этой информации, с версиями ядра в одном месте, без создания каких-либо специальных форматов для двоичного файла wtmp.

Цитата из man wtmp:

В wtmpфайл записываются все логины и выходы из системы. Его формат в точности такой, utmpза исключением того, что нулевое имя пользователя указывает на выход из системы на соответствующем терминале. Кроме того, имя терминала с именем ~пользователя shutdownили rebootуказывает на завершение работы системы или перезагрузку, а пара имен терминалов | /  }регистрирует старое / новое системное время, когда дата (1) меняет его.

Двоичный файл wtmp не сохраняет кроме временных отметок для событий. Например, lastрассчитывает дополнительные вещи, такие как время входа в систему.

reboot   system boot  2.6.32-28-generi Mon Feb 21 17:02 - 18:09  (01:07)    
...
user     pts/0        :0.0             Sat Feb 12 18:52 - 18:52  (00:00)    
user     tty7         :0               Sat Feb 12 18:52 - 20:53  (02:01)    
reboot   system boot  2.6.32-28-generi Sat Feb 12 08:31 - 18:09 (9+09:37)   

Последний столбец (в скобках) - это длина события. Для пользователя rebootэто время безотказной работы.

После последней перезагрузки текущее время работы. Для более ранних перезагрузок время - это время работы после этой перезагрузки (поэтому в последней строке моего примера это время работы до первой строки; между ними не было перезагрузок). Число (а) перед + означает количество дней. В последней строке это 9 дней, 9 часов и 37 минут, а в первой строке текущее время безотказной работы составляет 1 час и 7 минут.

Обратите внимание, однако, что это время не всегда точно - например, после сбоя системы и необычной последовательности перезапуска. lastвычисляет это как время между этим и следующей перезагрузкой / выключением.

Олли
источник
Мне любопытно, что last | grep -i shutdownничего не возвращает.
phunehehe
Спасибо, сообщение проницательное и отвечает на вопрос.
Андреа Спадаччини
Команда tuptime -t имеет четкий вывод и эквивалентна для этой цели.
Rfraile