Осмысление времени в dmesg

less также может открыть gz -компрессированные и несжатые tar архивы. Это дает вам прекрасный выход ls -l:

$ less ~/src/compiz_0.9.7.8-0ubuntu1.6.debian.tar.gz
drwxrwxr-x 0/0               0 2012-09-21 11:41 debian/
drwxrwxr-x 0/0               0 2012-08-09 13:32 debian/source/
-rw-rw-r-- 0/0              12 2012-08-09 13:32 debian/source/format
-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/libdecoration0-dev.docs
-rw-rw-r-- 0/0              25 2012-08-09 13:32 debian/compiz-dev.docs
-rw-rw-r-- 0/0             347 2012-08-09 13:32 debian/compiz-core.install
-rw-rw-r-- 0/0             125 2012-08-09 13:32 debian/libdecoration0-dev.install
...

И поскольку он less, вы можете прокручивать его, искать и т. Д. Однако он терпит неудачу с другими алгоритмами сжатия (в мой опыт).

1
задан 23 March 2016 в 21:53

2 ответа

Команда dmesg считывает буфер printk ядра, используя режим доступа к пространству пользователя через /dev/kmsg. Каждая запись имеет монотоновую метку времени в микросекундах, которая устанавливается при создании записи журнала.

Таким образом, вопрос не может быть, какая временная метка dmesg (или ядро) будет регистрироваться, но должна быть, когда ядро ​​создаст запись в журнале для конкретного действия.

Как я полагаю, это может отличаться от действия к действию. Когда произойдет событие с ядром, то есть подключите USB-устройство, ядро ​​будет регистрировать это, как только оно будет иметь полезную информацию. Когда ядро ​​выполняет запланированную задачу, имеет смысл регистрировать результаты при выполнении задания. Если это сложная работа, возможно, она создает некоторые записи журнала во время ее запуска, но, как я полагаю, в целом после того, как что-то интересное произошло, или немного времени ушло.

Как вы можете получить доступ к принтеру ядра буфера объясняется здесь.

Итак, если вы специально хотите знать, зарегистрирована ли какая-либо запись в начале или в конце действия, вам нужно посмотреть в коде с интерфейсом kernel- или module-sorce при вызове программы log-функция.

2
ответ дан 23 May 2018 в 12:38
  • 1
    Могу ли я суммировать ваш ответ, поскольку мы не можем полагаться на dmesg? Поскольку мы не можем сказать, что отвечает за разрыв, основанный на dmesg – Mostafa Ahangarha 23 March 2016 в 23:40
  • 2
    Я часто полагаюсь на вывод dmesg;) Но вы можете напомнить, что не можете определить, сколько времени потребовалось с помощью таких записей журнала. – cmks 23 March 2016 в 23:44

man dmesg, особенно:

   -d, --show-delta
          Display the timestamp and time delta spent between messages.  If
          used together with --notime then only the time delta without the
          timestamp is printed.


   -T, --ctime
          Print  human  readable  timestamps.  The  timestamp   could   be
          inaccurate!

          The  time  source  used for the logs is not updated after system
          SUSPEND/RESUME.

Значение временной метки - «микросекунды с момента загрузки / 1000000» (выглядит как «секунды до шести знаков после запятой»). Временная метка установлена ​​на 0 при загрузке.

Как и @cmks, значение «microseconds since boot» копируется в запись журнала, когда запись журнала вставляется в буфер ядра. dmesg интерпретирует это значение несколькими различными способами. [ f5] покажет дельта. Я прочитал Вопрос, и ответ от @cmks

-2
ответ дан 23 May 2018 в 12:38

Другие вопросы по тегам:

Похожие вопросы: