Como sei se o acct está sendo executado? (A contabilidade do sistema Unix)

4

Instalei o pacote acct e ele está em execução porque consigo ver a atividade do arquivo no arquivo de log. Eu sei que existe o comando accton on para ativá-lo, mas como eu determino que está ficando sem ver se há atividade no arquivo de log?

Acredito em minha leitura que não há nenhum daemon em execução, pois a contabilidade é gerenciada como parte do kernel e esse programa simplesmente permite que a atividade seja registrada.

PS: Não existe um processo chamado "acct"

    
por Meer Borg 22.07.2013 / 08:42

3 respostas

2

Eu não acho que exista um método melhor do que apenas observar o arquivo de log crescendo ou não crescendo. E isso não é infalível, pois a contabilidade pode ser enviada para um arquivo alternativo. e mesmo em um sistema normal com nada estranho acontecendo, haverá um cron job que interrompe a contabilização, rotaciona o log e o reinicia para que haja uma breve janela onde você obterá a resposta errada.

Talvez deva haver um link simbólico para o arquivo contábil atual em algum lugar em /proc , mas não há um.

    
por 23.07.2013 / 07:01
2

Estou no CentOS e usa psacct .

psacct é executado como um serviço para que você possa:

 service psacct status

e você pode verificar o arquivo de bloqueio: /var/lock/subsys/psacct

Eu acho que ele é executado no espaço do kernel e acho que é realmente difícil dizer se ele está em execução ou ativado (se você usar um arquivo contábil não listado e alterar o local do arquivo de bloqueio no script de inicialização) uma ferramenta muito útil para fazer perícia em uma caixa pennned.

    
por 13.08.2013 / 11:16
1

Você está certo: não há processo associado à contabilidade do sistema, esta é uma função interna do kernel que está gravando diretamente em um arquivo de contabilidade do sistema, que em muitos Unixes é /var/account/acct . Não há chamada de sistema para obter um status desta função do kernel interno.

A maneira certa de verificar se a contabilidade do sistema está ativada é usar o comando padrão do Unix lastcomm duas vezes. O primeiro processo será registrado no arquivo contábil do sistema, o segundo confirmará que o último processo encerrado e registrado é lastcomm .

Em um servidor altamente carregado e, principalmente, em multiprocessadores, o segundo lastcomm pode exibir mais alguns outros processos encerrados antes de exibir o primeiro lastcomm . Isso é normal.

Aqui está a minha melhor função shell para obter um status de contabilidade:

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}" ]
}

uso:

is_acct_on

retornar 0 se a contabilidade estiver desativada

1 se a contabilidade estiver ativa.

    
por 01.06.2015 / 13:01

Tags