mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

ACCT(2)                                                 ACCT(2)

НАЗВАНИЕ 
        acct - включение/выключение режима сбора статистической
        информации о процессах

СИНТАКСИС 
        int acct (path)
        char *path;

ОПИСАНИЕ 
        Системный  вызов acct используется для включения/выклю-
        чения режима сбора статистической информации о  процес-
        сах.  Если режим включен, то для каждого завершившегося
        процесса в файл сбора статистики помещается  соответст-
        вующая  запись.  Завершение  выполнения  процесса может
        произойти с помощью системного вызова  exit  или  из-за
        получения  сигнала [см. exit(2) и signal(2)]. Системный
        вызов acct доступен только суперпользователю.

        Аргумент path указывает на маршрутное имя  файла  сбора
        статистики.  Формат  файла  сбора  статистики  описан в
        acct(4).

        Режим сбора статистики включается, если значение  аргу-
        мента path не равно 0, и не произошло ошибок  во  время
        выполнения системного вызова.  Режим  сбора  статистики
        выключается, если значение path равно 0, и не произошло
        ошибок во время выполнения системного вызова.

        Системный вызов acct завершается неудачей, если  выпол-
        нено хотя бы одно из следующих условий:

        [EPERM]     Пользователь вызывающего процесса не  явля-
                    ется суперпользователем.

        [EBUSY]     Попытка включить  режим  сбора  статистики,
                    когда он уже включен.

        [ENOTDIR]   Компонент маршрутного префикса не  является
                    каталогом.

        [ENOENT]    Компонент в маршрутном  имени  файла  сбора
                    статистики не существует.

        [EACCES]    Файл, заданный аргументом path, не является
                    обычным файлом.

        [EROFS]     Указанный файл находится в файловой системе
                    с доступом к файлам только по чтению.

        [EFAULT]    Аргумент path задает недопустимый адрес.

СМ. ТАКЖЕ 
        exit(2), signal(2), acct(4).

ДИАГНОСТИКА 
        При успешном завершении результат  равен  0;  в  случае
        ошибки возвращается -1, а переменной errno присваивает-
        ся код ошибки.



ACCT(4)                                                 ACCT(4)

НАЗВАНИЕ 
        acct - формат файла с информацией о процессах

СИНТАКСИС 
        #include 

ОПИСАНИЕ 
        Файлы, которые образуются  системным  вызовом  acct(2),
        содержат  записи  следующей  структуры, определенной во
        включаемом файле :

        typedef ushort comp_t; /* "Вещественное число": 13 бит
                                  мантисса, 3 бита порядок */
        
        struct acct {
          char   ac_flag;    /* Флаг учетной информации */
          char   ac_stat;    /* Код завершения */
          ushort ac_uid;
          ushort ac_gid;
          dev_t  ac_tty;
          time_t ac_btime;   /* Время начала */
          comp_t ac_utime;   /* Пользовательское время ЦП в
                                тактах часов */
          comp_t ac_stime;   /* Системное время ЦП в тактах
                                часов */
          comp_t ac_etime;   /* Астрономическое время выполне-
                                ния в тактах часов */
          comp_t ac_mem;     /* Расход памяти в Кб */
          comp_t ac_io;      /* Кол-во переданных символов */
          comp_t ac_rw;      /* Общее число прочитанных и за-
                                писанных блоков */
          char   ac_comm[8]; /* Имя команды  */
        };

        extern struct acct  acctbuf;
        extern struct inode *acctp; /* Описатель файла учетной
                                       информации */
        #define AFORK 01     /* Выполнен fork, но не exec */
        #define ASU   02     /* Привилегии суперпользователя */
        #define ACCTF 0300   /* Тип записи: 00 = acct */

        В  поле  ac_flag  флаг AFORK устанавливается при каждом
        вызове fork(2) и сбрасывается при вызове exec(2).  Поле
        ac_comm наследуется от родительского процесса и сбрасы-
        вается  при exec(2). Каждый раз, когда система выделяет
        процессу квант времени, она также  добавляет  к  ac_mem
        текущий размер процесса, вычисляемый как

             (размер сегмента данных) +  (размер  сегмента  ко-
             манд) / (количество процессов в памяти, использую-
             щих этот сегмент команд)

        Значение ac_mem/(ac_stime+ac_utime) может служить хоро-
        шим приближением среднего размера  процесса,  с  учетом
        разделения сегмента команд.

        Следующая структура используется  различными  командами
        работы с учетной информацией:

        /* Общая учетная информация за некоторый период */
        
        struct tacct {
          uid_t          ta_uid;      /* Идент. пользователя */
          char           ta_name[8];  /* Входное имя */
          float          ta_cpu[2];   /* Среднее время ЦП в
                                         минутах */
          float          ta_kcore[2]; /* Среднее значение
                                         килобайтоминут */
          float          ta_con[2];   /* Среднее астрономичес-
                                         кое время выполнения
                                         в минутах */
          float          ta_du;       /* Суммарное использова-
                                         ние диска */
          long           ta_pc;       /* Число процессов */
          unsigned short ta_sc;       /* Число сеансов раб. */
          unsigned short ta_dc;       /* Число дисковых прими-
                                         тивов */
          unsigned short ta_fee;      /* Для спец. применений
                                         */
        };

СМ. ТАКЖЕ 
        acct(2), exec(2), fork(2).
        acctcom(1) в Справочнике пользователя.

СЮРПРИЗЫ 
        Значение  поля ac_mem для быстро заканчивающихся команд
        дает мало информации о реальном размере команды.



      ACCT(1M)                                               ACCT(1M)

      НАЗВАНИЕ
              acct: acctdisk, acctdusg, accton, acctwtmp - обзор воз-
              можностей сбора статистики

      СИНТАКСИС
              /usr/lib/acct/acctdisk

              /usr/lib/acct/acctdusg [-u файл1] [-p файл2]

              /usr/lib/acct/accton [файл]

              /usr/lib/acct/acctwtmp "причина"

      ОПИСАНИЕ
              Для  сбора статистики предоставляется ряд утилит, среди
              которых имеются как C-программы, так и shell процедуры;
              описанию последних посвящена статья acctsh(1M). Основы-
              ваясь на этих утилитах,  можно  создать  статистическую
              службу,  приспособленную  к  нуждам конкретной вычисли-
              тельной установки.

              Сведения о времени начала/конца сеансов помещаются раз-
              личными  программами  в файл /etc/utmp, формат которого
              описан в utmp(4). Утилиты группы acctcon(1M) преобразу-
              ют эти сведения в записи о сеансах и  об  использовании
              таких ресурсов, как терминальные линии; затем с помощью
              утилиты acctmerg(1M) можно получить итоговый отчет.

              Сбор информации о  процессах  осуществляется  ядром  ОС
              UNIX.  При завершении процесса в файл (обычно /usr/adm/
              pacct) добавляется одна запись.  Утилиты,  описанные  в
              acctprc(1M),   выдают   сводную   информацию;   утилита
              acctcms(1M) служит для получения статистики использова-
              ния команд. Сведения о процессах, завершившихся  недав-
              но, можно запросить с помощью команды acctcom(1).

              Утилита acctmerg позволяет получить сводную  информацию
              не только о процессах и о сеансах работы пользователей;
              она пригодна для обработки любых файлов, записи в кото-
              рых имеют формат acct [см. acct(4)]. Генерируемая свод-
              ная  информация  состоит  из  записей  типа  tacct  [см
              acct(4)]. Для форматирования  и  вывода  сводок  служит
              процедура prtacct [см. acctsh(1M)].

              Утилита acctdisk читает со стандартного  ввода  строки,
              содержащие идентификатор пользователя, его входное имя,
              количество  дисковых  блоков,  преобразует эти строки в
              формат сводной информации tacct и выдает результаты  на
              стандартный  вывод. Обычно исходные данные для acctdisk
              готовятся с помощью утилит diskusg(1M) или acctdusg,  а
              результаты  используются при подготовке ежедневных сво-
              док [см. dodisk и runacct в acctsh(1M)].

              Утилита acctdusg читает со  стандартного  ввода  список
              полных маршрутных имен файлов (обычно - результат рабо-
              ты  команды find / -print) и выдает сведения об исполь-
              зовании  дискового пространства (включая косвенные бло-
              ки) различными пользователями. Если указана  опция  -u,
              то  в  файл1 помещаются записи о тех каталогах, которые
              не являются подкаталогами основных каталогов каких-либо
              пользователей, на основании чего можно выявить лиц, ук-
              лоняющихся от учета дискового пространства. Если указа-
              на опция -p, то файл2 рассматривается как файл со  све-
              дениями о пользователях; по умолчанию используется файл
              /etc/passwd [см. также diskusg(1M)].

              Утилита  accton, будучи вызванной без аргумента, выклю-
              чает сбор статистики о процессах. Если файл указан,  то
              он должен существовать; к этому файлу ядро ОС будет до-
              бавлять  учетную  информацию о процессах [см. acct(2) и
              acct(4)].

              Утилита acctwtmp помещает на стандартный вывод записи в
              формате  wtmp(4). Эти записи, получающие тип ACCOUNTING
              [см. utmp(4)], содержат текущее время и цепочку  симво-
              лов,  описывающую  причину.  Причина должна состоять не
              более чем из 11 символов, в число которых могут входить
              буквы, цифры, знаки $ и пробелы. Например, в  процедуре
              остановки системы рекомендуется иметь строку вида

                   acctwtmp  "file save" >> /etc/wtmp

      ФАЙЛЫ
              /etc/passwd     Файл со сведениями о пользователях.
              /usr/lib/acct   Каталог команд сбора статистики.
              /usr/adm/pacct  Текущий файл сбора статистики о процес-
                              сах.
              /etc/wtmp       Файл  со  сведениями  о времени начала/
                              конца сеансов.

      СМ. ТАКЖЕ
              acctcms(1M),  acctcon(1M),  acctmerg(1M),  acctprc(1M),
              acctsh(1M), diskusg(1M), fwtmp(1M), runacct(1M).
              acctcom(1) в Справочнике пользователя.
              acct(2), acct(4), utmp(4) в Справочнике программиста.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк