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*, так как он непо-
лон.
|