acct가 실행 중인지 어떻게 알 수 있나요? (유닉스 시스템 회계)

acct가 실행 중인지 어떻게 알 수 있나요? (유닉스 시스템 회계)

패키지를 설치했는데 acct로그 파일에서 파일 활동을 볼 수 있으므로 작동 중입니다. 이를 켜는 명령이 있다는 것을 알고 있지만 accton on로그 파일에서 활동을 확인하고 있지 않은지 어떻게 확인할 수 있습니까?

내가 읽은 바에 따르면 계정은 커널의 일부로 관리되고 프로그램은 단순히 로깅 활동을 허용하므로 실행되는 데몬이 없다고 생각됩니다.

PS: "acct"라는 프로세스가 없습니다.

답변1

로그 파일이 커지거나 커지지 않는 것을 지켜보는 것보다 더 좋은 방법은 없다고 생각합니다. 회계사가 백업 파일로 전송될 수 있으므로 이것이 완벽하지는 않습니다. 이상한 일이 일어나지 않는 건강한 시스템에서도 계정을 중지하고 로그를 회전하고 다시 시작하는 cron 작업이 있으므로 잘못된 답변을 얻는 간단한 창이 있습니다.

어쩌면 어딘가에 현재 회계 파일에 대한 심볼릭 링크가 있어야 하는데 /proc그렇지 않습니다.

답변2

저는 CentOS를 사용하고 있으며 psacct.

psacct서비스로 실행되므로 다음을 수행할 수 있습니다.

 service psacct status

잠금 파일을 확인할 수 있습니다./var/lock/subsys/psacct

나는 그것이 커널 공간에서 실행된다고 생각하며 실제로 그것이 실행 중인지 열려 있는지를 말하기가 매우 어렵도록 설계되었다고 생각합니다(설명이 없는 회계 파일을 사용하고 시작 스크립트에서 잠금 파일의 위치를 ​​변경하는 경우). 금이 간 상자에 대한 법의학 도구가 있습니다.

답변3

당신 말이 맞습니다. 시스템 계정과 관련된 프로세스가 없습니다. 이는 많은 Unix에서와 같이 시스템 계정 파일에 직접 쓰는 내부 커널 함수입니다 /var/account/acct. 이 내부 커널 함수의 상태를 가져오는 시스템 호출이 없습니다.

시스템 계정이 켜져 있는지 확인하는 안정적인 방법은 표준 Unix 명령을 lastcomm두 번 사용하는 것입니다. 첫 번째 프로세스는 시스템 계정 파일에 등록되고 두 번째 프로세스는 마지막으로 종료되고 등록된 프로세스가 임을 확인합니다 lastcomm.

로드가 많은 서버, 특히 다중 프로세서에서 두 번째 프로세스는 lastcomm첫 번째 프로세스를 표시하기 전에 종료된 다른 프로세스를 더 많이 표시할 수 있습니다 lastcomm. 이것은 정상입니다.

이것은 회계 상태를 얻는 가장 좋은 쉘 기능입니다.

is_acct_on() {
    t=`mktemp /tmp/acct.XXXX`
    touch ${t}
    sleep 1
    x=`find /var/account -newercc ${t} -name "acct" | head -1`
    rm ${t}
    [ -z "${x}" ]
}

용법:

is_acct_on

0회계가 마감된 경우 반품

1회계가 켜져 있는 경우.

관련 정보