Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

ERRFILE(4)

НАЗВАНИЕ
errfile - формат файла фиксации аппаратных ошибок

ОПИСАНИЕ
При обнаружении системой аппаратных сбоев порождается запись, которая передается демону, фиксирующему ошибки и заносящему записи в соответствующий файл для последующего анализа. По умолчанию, таким файлом является /usr/adm/errfile.

Формат записи об ошибке зависит от типа обнаруженной ошибки. Каждая запись, однако, имеет заголовок следующего формата:

struct errhdr {
 short e_type; /* Тип записи */
 short e_len; /* Кол-во байт в записи (вкл. заголовок) */
 time_t e_time; /* Дата ошибки */
};
Перечень допустимых типов записей:
#define E_GOTS 010 /* Старт UNIX/TS */
#define E_GORT 011 /* Старт UNIX/RT */
#define E_STOP 012 /* Стоп */
#define E_TCHG 013 /* Изменение времени */
#define E_CCHG 014 /* Переконфигурация */
#define E_BLK 020 /* Ошибка блочного устройства */
#define E_STRAY 030 /* Случайное прерывание */
#define E_PRTY 031 /* Четность памяти */

Некоторые записи в файле ошибок имеют администраторское происхождение. Сюда входит инициализационная запись об активации процесса сбора ошибок, завершающая запись при успешном завершении работы демона, а также записи об изменении времени, которые используются для фиксации изменений системного времени. Эти записи имеют следующий формат:

struct estart {
 short   e_cpu; /* Тип ЦП */
 struct utsname e_name; /* Имя системы */
};

#define eend errhdr /* Заголовок записи */
struct etimchg {
 time_t e_ntime; /* Новое значение времени */
};

При случайном прерывании порождается запись следующего формата:

struct estray {
 uint e_saddr; /* Адрес прерывания или устройства */
};

Фиксация ошибок памяти не поддерживается в данной реализации.

Записи для блочных устройств имеют следующий формат:

struct eblock {
 dev_t e_dev; /* Старший+младший ном. уст-ва */
 physadr e_regloc; /* Адрес контроллера */
 short e_bacty; /* Прочие опер. ввода/вывода */
 struct iostat {
 long io_ops; /* Кол-во чтений/записей */
 long io_misc; /* Кол-во прочих операций */
 ushort io_unlog; /* Кол-во незафикс. ошибок */
 }  e_stats;
 short e_bflags; /* Чтение/запись, ошибка и т.д. */
 short e_cyloff; /* Начальный цилиндр уст-ва */
 daddr_t e_bnum; /* Номер логического блока */
 ushort e_bytes; /* Кол-во передаваемых байт */
 paddr_t e_memadd; /* Адрес буфера */
 ushort e_rtry; /* Кол-во повторных попыток */
 short e_nreg; /* Кол-во регистров уст-ва */
};
Следующие значения используются в поле флагов e_bflags:
#define E_WRITE 0 /* Операция записи */
#define E_READ 1 /* Операция чтения */
#define E_NOIO 02 /* Нет запросов, ожидающих в/в */
#define E_PHYS 04 /* Физический ввод/вывод */
#define E_FORMAT 010 /* Форматирование диска */
#define E_ERROR 020 /* Неудачный ввод/вывод */

СМ. ТАКЖЕ
errdemon(1M) в Справочнике администратора.

Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
Обновлено: 13.03.2015