Чи є журнал, який записує припинення роботи в Linux?


38

Мені було цікаво, чи є в Linux файл журналу, який записує щоразу, коли комп'ютер закривається?

Причина, про яку я запитую, - це те, що я роблю кілька тестів, пов’язаних із тим, як довго працює акумулятор ноутбука за певних умов. Мій ноутбук налаштований для автоматичного відключення, коли залишилося близько 10 хвилин заряду батареї, тому якщо десь є файл журналу, який записує, коли комп'ютер вимкнений, це полегшить моє тестування.

Я запускаю Ubuntu 10.04. Спасибі!

Відповіді:


15

У /var/log/messagesфайлі дійсно повинно бути щось, що стосується відключень у ньому, наприклад, у мого (CentOS 5) є такі рядки:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Перевірте свій /etc/syslog.confабо /etc/rsyslog.confінший еквівалент, щоб переконатися, що там ходять журнали. Можливо, вам будуть потрібні привілеї root для читання файлів журналу.

Крім того, хоч це не завершення роботи, команда "остання" повинна повідомити про перезавантаження.

Чи справді взагалі нічого немає в журналах, коли ви востаннє закривались?

Під час тестування майте на увазі, що ваш комп'ютер знає, що у нього залишилось 10 хвилин через інформацію, про яку повідомляє акумулятор, яка може бути, а може і не бути точною. Замість того, щоб чекати відключень, ви могли переглядати інформацію ACPI безпосередньо. На моєму ноутбуці тут:

/proc/acpi/battery/BAT0/

Там файли "стан" та "інформація" виглядають цікавими. Ви можете переглядати залишкову ємність у файлі стану під час роботи ноутбука за різних умов, щоб побачити, як швидко він падає.


3
Якщо я цього не пропускаю, я не бачу жодного типу "вимкнення" повідомлення в / var / log / messages. Повідомлення "Журнал ядра (proc) припинено" іноді з'являється, але не завжди. Однак працює last -xробота. Ця команда відображає рядок, який виглядає наступним чином: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Дякую за інформацію про акумулятор. Моя система також має це, тому мені доведеться перевірити це! Здається, оновлювати ці файли кожні 5 секунд або близько того. Спасибі!
Майкл

Знову дякую. Мої результати тут: mangstacular.blogspot.com/2010/07/…
Майкл


5

Спочатку дозвольте почати з того, що я знаю, що це старіші теми. Я коментую лише так, що інші, хто знайде це, коли блукають по мережі (як я це робив сьогодні), матимуть чітку відповідь.

По-друге, зауважте, що наступна команда є поганою практикою і підпадає під категорію "марні використання котів" (пошук Google)

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Цей рядок слід змінити на:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, і більшість команд unix / linux (sed, awk тощо) для цього не вимагають, щоб кіт читав вміст файлів. Досить розмістити шлях команди та ім'я після команди, щоб передати його як аргумент. Додавання труби та іншої зовнішньої команди (кішка) - це просто витрачений час та ресурси.

Нарешті, що стосується того, де знайти запис про відключення системи та / або перезавантаження, скористайтеся останньою командою, оскільки саме для цього вона призначена. Він зчитує файл / var / log / wtmp для всіх записів входу / виходу. Оскільки відключення та перезавантаження - це фактично подія входу / виходу на системному рівні, вони записуються тут. Те саме стосується відключення кореневої консолі, це подія виходу.

Приклад:

last -5 reboot shutdown root

Це дасть вам останні 5 записів перезавантаження, вимкнення та кореня (включено відключення консолі) у журналі wtmp.

Результат:

reboot    ~                         Mon Mar 23 14:51
shutdown  ~                         Mon Mar 23 14:49
root      console                   Mon Mar 23 14:49 - shutdown  (00:00)
reboot    ~                         Mon Mar 16 09:54
shutdown  ~                         Thu Mar 12 17:41

Я сподіваюся, що це допоможе кожному, хто наткнеться на цю нитку. :-)


Альтернативно просто last -xабо last -F -R -x runlevel. Для моніторингу батареї під Ubuntu grep hooks /var/log/pm-suspend.logтакож може бути корисним показ призупинення та відновлення. На жаль, pm-powersave.log не зберігає час підключення живлення змінного струму (якщо ви не додасте власний гачок). help.ubuntu.com/community/PowerManagement/ReducedPower, можливо, варто прочитати.
Седрік Найт

Щодо UUoC, час CPU у $ << Час мозку ...
MikeP

1
Кожна людина, що згадує про "марні використання котів", ймовірно, витрачає більше часу, щоб вказати на факт, ніж загальний час процесора, витрачений на марні використання котів усіма комп'ютерами на землі (а іноді вони непотрібно розкривати свою інакше приємну відповідь як побічний ефект - - як ця)
ndemou

4

Файл / var / log / messages повинен містити цю інформацію


У цьому файлі я нічого не бачив, що стосується вимкнення. :( Я спробував зірвати всі інші файли в цьому каталозі, використовуючи часову позначку часу, коли вимкнув комп’ютер, але не пощастило:grep -r "Jul 24 14:" /var/log/*
Майкл

Файл не існує на Linux mint mate 17.
Ерік Ван

2

якщо ви хочете відслідковувати, як довго працював ваш комп’ютер, ви можете використовувати щось на кшталт uptimed.

він поставляється з програмою під назвою uprecords, яка показує, як довго ви працюєте на комп’ютері.


1

Ось однолінійний перелік усіх повідомлень з поточного дня:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Це було протестовано на CentOS так YMMV.

І звичайно, є last rebootі last shutdown(як згадувалося), але це занадто просто для моїх потреб (передбачає лише дати).


1

last reboot працював для мене на CentOS 6.7.

Щоб показати рік у виході, тож насправді має сенс, якщо у вас є записи, що мають більше одного року, зробіть це

last -F reboot

Хоча я вважаю, що перемикач -F не ​​працює в деяких системах, таких як Solaris. Це, мабуть, є частиною останнього GNU.

Завдяки https://unix.stackexchange.com/a/97597/174520


0

якщо журналу немає, ви можете спробувати додати якийсь 'date >> mylog' до сценарію відключення (у деяких списках він називається rc.shutdown)

або, також існує спосіб без необхідності попереднього регулювання. запустити:

while [ 1 ];do sleep 5;date>mylog;sync;done

і хвостовий мілог на наступній сесії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.