/ var / log / account / pacct está ficando muito grande, onde está ckpacct (para cicle / gzip)?

2

Eu tenho 2 arquivos grandes em, /var/log/account , de 350MB cada ..., minha raiz é de apenas 10GB ...

Eu li que poderia ter ckpacct para ciclo e gzip, mas eu não consigo encontrá-lo, também não há comando alternativo?

EDIT: Eu achei que sudo accton off desativa o log, mas os arquivos permanecem lá, e eu acho que minha próxima inicialização será ativada novamente ...

eles parecem estar sendo pedalados, mas quem realmente faz isso?

369114432 May 13 23:23 /var/log/account/pacct
333708160 May 13 12:27 /var/log/account/pacct.0
 13681065 May 12 16:21 /var/log/account/pacct.1.gz
  3371433 May 11 09:50 /var/log/account/pacct.2.gz
  7549333 May 10 07:35 /var/log/account/pacct.3.gz

EDIT: meus scripts de inicialização de adivinhação fazem o ciclo ... de qualquer forma, criei esse script, mas não sei quais implicações de segurança ele pode ter ... alguma consideração?

cat >ckpacct.sh

#!/bin/bash

if [[ -n "" ]]; then
  echo "there is no parameters and no --help, read the script and understand what is does, before running it up."
  exit 1
fi

if [[ "$USER" != "root" ]]; then
    echo "you must be root to run it..."
    exit 1
fi

function FUNCerror() {
    if((!=0));then exit 1; fi
}

cd /var/log/account;FUNCerror $?

# fast ungrab pacct file
accton off;FUNCerror $?

mv -v pacct pacct.0.temp;FUNCerror $?

echo -n |tee pacct;FUNCerror $?
chown -v root:adm pacct;FUNCerror $?
chmod -v o-r pacct;FUNCerror $?

accton on;FUNCerror $?

# compress old 0
gzip -v --best pacct.0;FUNCerror $? #releases also pacct.0 filename

mv -v pacct.0.temp pacct.0;FUNCerror $? #restore new 0 from temp

# change file names upping indexes
#mv -v pacct pacct.0
for((i=4;i>=0;i--));do
    mv -v pacct.$i.gz pacct.$((i+1)).gz;FUNCerror $?
done
rm -v pacct.5.gz;FUNCerror $? # remove last in the limit
    
por Aquarius Power 14.05.2013 / 04:15

3 respostas

1

O script que circula os logs está em /etc/cron.daily/acct . O número de arquivos de log é controlado por /etc/default/acct , que também controla se a contabilização do processo deve ser ativada no momento da inicialização.

Se você quiser remover completamente a contabilidade do processo, sudo apt-get purge acct também deve resolver o problema.

    
por Kees Cook 30.03.2015 / 21:05
0

Eu percebo que essa é uma pergunta antiga, mas como não foi respondida ...

Eu diria que o logrotate está fazendo sua rotação de log. Verifique seu crontab ("crontab -l") para uma tarefa logrotate que identifica o arquivo conf. Olhe nesse arquivo conf para detalhes relacionados a / var / log / account / pacct.

Eu não li seu script de perto, mas parece que você está duplicando o que o logrotate faz - não?

    
por skydvr 04.12.2013 / 18:12
0

obter o cron acct para cron.hourly em vez de diariamente;)

depois, coloque esses valores no arquivo / etc / default / acct:

ACCT_ENABLE="1"

Quantidade de dias em que os registros são mantidos.

ACCT_LOGGING="2" # você não pode definir isso com menos de 2 se você não quiser que o acct receba um erro

    
por dzimmer 03.12.2015 / 06:19