runacct 스크립트
기본 일별 계산 스크립트인 runacct는 일반적으로 정상 업무 시간 외의 시간에 cron
명령으로 호출됩니다. runacct 스크립트는 연결, 요금, 디스크, 프로세스 계산 파일을 처리합니다. 또한
요금 청구 목적으로 prdaily 및 monacct 스크립트에서 사용할 일별/누적 요약 파일을 준비합니다.
runacct 스크립트는 오류가 발생할 경우 파일이 손상되지 않도록 보호합니다.
다음 작업을 수행하기 위해 일련의 보호 방식이 사용됩니다.
이 스크립트는 active 파일에 설명적 메시지를 작성하여 진행률을 기록합니다. runacct 스크립트에서 사용된
파일은 특별한 언급이 없는 한 /var/adm/acct/nite 디렉토리에 있다고 가정합니다. runacct 스크립트 실행
동안 모든 진단 출력은 fd2log 파일에 기록됩니다.
runacct 스크립트를 호출할 때 lock 및 lock1 파일을 생성합니다. 이러한 파일은 runacct
스크립트의 동시 실행을 막는 데 사용됩니다. runacct 프로그램을 호출할 때 이러한 파일이
있으면 오류 메시지를 출력합니다. lastdate 파일에는 runacct 스크립트가 마지막 호출된 월, 일이
있어서 하루에 한 번 이상 실행되는 것을 막을 수 있습니다.
runacct 스크립트가 오류를 감지하면 다음이 발생합니다.
-
메시지를 콘솔에 작성
-
root 및 adm에 전자 메일 보내기
-
잠금이 제거될 수 있음
-
진단 저장
-
실행 종료
runacct 스크립트 다시 시작 방법에 대한 지침은 runacct 스크립트를 다시 시작하는 방법을 참조하십시오.
runacct 스크립트가 다시 시작되도록 허용하려면 프로세싱을 별도의 재진입 상태로 구분합니다. statefile 파일은
마지막으로 완료된 상태를 추적하는 데 사용됩니다. 각 상태가 완료되면 statefile 파일이 다음
상태를 반영하도록 업데이트됩니다. 상태 처리가 완료되고 나면 statefile 파일을 읽어 다음 상태가
처리됩니다. runacct 스크립트가 CLEANUP 상태에 도달하면 잠금을 제거하고 종료합니다. 다음 표에 나타난
대로 상태가 실행됩니다.
표 10-1 runacct 스크립트의 상태
|
|
SETUP |
turnacct switch 명령을 실행하여 새 pacct
파일을 만듭니다. /var/adm/pacct n 프로세스 계산 파일(단, pacct 파일 제외)이 /var/adm/Spacct n.MMDD 파일로 이동합니다.
/var/adm/wtmpx 파일이 /var/adm/acct/nite/wtmp.MMDD 파일(현재 시간 레코드가 끝에 추가됨)로 이동하고 새 /var/adm/wtmp 파일이
생성됩니다. closewtmp 및 utmp2wtmp 프로그램이 wtmp.MMDD 파일과 새 wtmpx 파일에 레코드를 추가하여
현재 로그인한 사용자를 알아냅니다. |
WTMPFIX |
wtmpfix 프로그램은 정확성을 위해 nite 디렉토리의 wtmp. MMDD
파일을 검사합니다. 어떤 날짜를 변경하면 acctcon 프로그램이 실패하기 때문에 날짜 변경 레코드가
나타날 경우 wtmpfix 프로그램이 wtmpx 파일에서 시간 기록을 조정하려고 시도합니다. 또한 이
프로그램은 wtmpx 파일에서 훼손된 항목을 삭제합니다. 수정된 버전의 wtmp.MMDD 파일이 tmpwtmp 파일에
기록됩니다. |
CONNECT |
acctcon 프로그램은 ctacct.MMDD 파일에 연결 계산 레코드를 기록하는 데 사용됩니다. 이러한
레코드는 tacct.h 형식입니다. 또한 acctcon 프로그램은 lineuse 및 reboots 파일을 만듭니다. reboots
파일은 wtmpx 파일에서 발견된 모든 부트 레코드를 기록합니다. |
PROCESS |
acctprc 프로그램은 /var/adm/Spacct n.MMDD
프로세스 계산 파일을 ptacctn.MMDD 파일의 완전한 계산 레코드로 변환하는 데 사용됩니다. Spacct
및 ptacct 파일은 숫자로 상호 연관되므로 runacct 스크립트가 실패할 경우 Spacct 파일이
처리되지 않습니다. |
MERGE |
acctmerg 프로그램은 프로세스 계산 레코드를 연결 계산 레코드와 병합하여 daytacct
파일을 만듭니다. |
FEES |
acctmerg 프로그램은 ASCII tacct 레코드를 fee 파일에서 daytacct 파일로 병합합니다. |
DISK
|
dodisk 스크립트는 disktacct 파일을 만듭니다. dodisk 스크립트가 실행된 경우 disktacct 파일을 만들면,
DISK 프로그램이 이 파일을 daytacct 파일로 병합하고 disktacct 파일을 /tmp/disktacct.MMDD 파일로 이동합니다.
|
MERGETACCT |
acctmerg 프로그램은 daytacct 파일을 누적 총 계산 파일인 sum/tacct 파일과 병합합니다. 매일
daytacct 파일이 sum/tacct.MMDD 파일에 저장되므로 sum/tacct 파일이 훼손되거나 손실된 경우 다시 만들
수 있습니다. |
CMS |
acctcms 프로그램이 여러 번 실행됩니다. 이 프로그램을 처음 실행하여 Spacct n
파일로 명령 요약을 생성하고 sum/daycms 파일에 데이터를 기록합니다. 그 다음, acctcms 프로그램을
실행하여 sum/daycms 파일을 sum/cms 누적 명령 요약 파일과 병합합니다. 마지막으로, acctcms 프로그램을
실행하여 sum/daycms 및 sum/cms 파일에서 각각 nite/daycms 및 nite/cms라는 ASCII 명령 요약
파일을 생성합니다. lastlogin 프로그램은 /var/adm/acct/sum/loginlog 로그 파일을 만드는 데 사용됩니다. 이 파일은
각 사용자의 마지막 로그인 시간을 보고합니다. runacct 스크립트가 자정 이후 실행되면 사용자의
마지막 로그인 시간을 보여주는 날짜가 하루씩 틀립니다. |
USEREXIT |
이 시점에서 설치 종속적(로컬) 계산
프로그램을 실행할 수 있습니다. runacct 스크립트는 이 프로그램이 /usr/lib/acct/runacct.local 프로그램을 호출할 것으로
기대합니다. |
CLEANUP |
이 상태는 임시 파일을 정리하고, prdaily 스크립트를 실행하고 sum/rpt.MMDD 파일에 출력을
저장하며, 잠금을 제거한 후 종료합니다. |
|
![주의 주의](graphics/caution.gif) | 주의 - CLEANUP 상태의 runacct 스크립트를 다시 시작할 때 마지막 ptacct 파일이 완료되지 않으므로
이 파일을 제거하십시오.
|