разница между dmesg и /var/log/kern.log

Я изменяю модуль kvm и добавляю операторы printk в код ядра. После запуска виртуальной машины printk дает мне адрес ошибки и другую информацию о гостевой ОС.

Мне нужно сгенерировать статистику из этой информации. Когда я использую dmesg, я вижу только ошибочный адрес. в пространстве ядра, то есть их адреса выше 0XC0000000. (адрес сбоя необходим, когда происходит VMEXIT, т. е. мы переключаемся с гостевого режима на хост)

Когда я вижу ту же статистику в kern.log, я также получаю ошибочный адрес из пользовательского пространства (ниже 0XC0000000 ). Так что мне кажется, что dmesg имеет ограниченные возможности, а предоставленная информация является подмножеством из kern.log.
Мой файл kern.log слишком большой. Можно ли стереть старые данные из kern.log, потому что команды обработки текста, такие как grep,join,awk, слишком долго выполняются в файле.

Мой вопрос:
В чем разница между dmesg и kern.log?
Как уменьшить размер файла kern.log при выполнении задания cron? (удалить все данные, добавленные за последние 24 часа)
Есть ли лучший способ получить функциональность типа printf из ядра?

10
задан Deepthought 10 July 2012 в 12:06
поделиться