RUNACCT(1M) RUNACCT(1M) НАЗВАНИЕ runacct - ежедневная обработка статистики СИНТАКСИС |/usr/lib/acct/runacct [ммдд [фаза]] ОПИСАНИЕ Утилита runacct является основной shell-процедурой ежедневной обработки статистики. Обычно она планируется для регулярного запуска cron'ом [см. cron(1M)]. Проце- дура runacct подытоживает накопленную за день информа- ции о сеансах, о процессах, об оплате и об использова- нии дискового пространства. Готовится также сводка об использовании команд. Наконец, отчет форматируется с помощью процедуры prdaily [см. acctsh(1M)] и помещается в каталог сводной статистической информации /usr/adm/ acct/sum. День, за который подводятся итоги, задается аргументом ммдд, где мм - номер месяца (01 - 12), а дд - номер дня в месяце (01 - 31). Смысл аргумента фаза состоит в следующем. Выполнение процедуры runacct подразделяется на несколько независи- мых фаз и может начинаться с любой из них. Прежде чем приступить к некоторой фазе, runacct записывает ее имя в файл statefile. Эту информацию можно использовать при повторном подведении итогов за определенный день, если успешному завершению первой попытки помешали ошибки: по умолчанию, когда задан только день, выполнение процеду- ры runacct начинается с фазы, имя которой сохранено в файле statefile. Если фаза задана явно, содержимое фай- ла statefile игнорируется. При отсутствии аргументов процедура runacct выполняет полное подведение итогов за текущий день. Фазы выполняются в таком порядке: SETUP Перемещение текущей учетной информации в рабочие файлы. WTMPFIX Проверка целостности файла /etc/wtmp, при необхо- димости корректировка сведений о дате/времени. CONNECT1 Получение записей о сеансах работы пользователей в системе. CONNECT2 Преобразование записей о сеансах в сводный формат tacct [см. acct(4)]. PROCESS Преобразование статистической информации о процес- сах в сводный формат tacct. MERGE Слияние записей о сеансах работы пользователей и о выполнении процессов. FEES Преобразование результатов процедуры chargefee [см. acctsh(1M)] в сводный формат и слияние с дан- ными, полученными в предыдущей фазе. DISK Слияние информации об использовании диска с данны- ми, полученными в предыдущей фазе. MERGETACCT Слияние текущей информации из файла daytacct с данными из файла-отчета /usr/adm/acct/sum/tacct. CMS Получение сводки по использованию команд. USEREXIT Выполнение действий, специфичных для конкретной конфигурации. CLEANUP Форматирование итогового отчета, удаление времен- ных файлов и выход. В процедуре runacct предусмотрена защита файлов со ста- тистической информацией от повреждений в случае обнару- жения ошибок. Процедура фиксирует ход собственной рабо ты в файле-журнале active (расположенном, как и другие рабочие файлы, в каталоге /usr/lib/acct/nite). При об- наружении какой-либо ошибки на устройство /dev/console выводится диагностическое сообщение, пользователям root и adm посылаются почтовые уведомления [см. mail(1)], а выполнение процедуры прекращается. Для защиты от однов- ременного запуска нескольких экземпляров процедуры runacct используются файлы-замки lock и lock1. Файл-за- мок lastdate предохраняет от двукратного подведения итогов за один и тот же день. Прежде чем перезапустить runacct после неудачи, следует прежде всего выяснить характер ошибки (по диагностичес- кой записи в файле active), а затем ликвидировать не- корректности в исходных файлах (таких как pacct и /etc/wtmp). Наконец, необходимо удалить файлы-замки lock, lock1 и lastdate. ПРИМЕРЫ Запуск runacct: |nohup runacct 2>/usr/adm/acct/nite/fd2log & Перезапуск runacct: |nohup runacct 0602 2>>/usr/adm/acct/nite/fd2log & Перезапуск runacct с определенной фазы: |nohup runacct 0602 CMS 2>>/usr/adm/acct/nite/fd2log & ФАЙЛЫ /etc/wtmp /usr/adm/pacct* /usr/adm/acct/nite/active /usr/adm/acct/nite/daytacct /usr/adm/acct/nite/lock /usr/adm/acct/nite/lock1 /usr/adm/acct/nite/lastdate /usr/adm/acct/nite/statefile /usr/adm/acct/nite/ptacct*.ммдд СМ. ТАКЖЕ acct(1M), acctcms(1M), acctcon(1M), acctmerg(1M), acctprc(1M), acctsh(1M), diskusg(1M), fwtmp(1M). acctcom(1) в Справочнике пользователя. acct(2), acct(4), utmp(4) в Справочнике программиста. ДИАГНОСТИКА Диагностические сообщения помещаются в различные файлы, выводятся на устройство /dev/console и посылаются по почте пользователям root и adm. СЮРПРИЗЫ Обычно нецелесообразно перезапускать runacct с фазы SETUP. Следует вручную выполнить начальные действия, а затем произвести перезапуск командой |runacct ммдд WTMPFIX В случае неудачного выполнения фазы PROCESS, необходимо удалить последний из файлов ptacct*, так как он непо- лон.