/ var / log / account / pacct становится слишком большим, где находится ckpacct (чтобы его скопировать / сжать)?

У меня есть 2 больших файла, по /var/log/account, по 350 МБ каждый ..., мой корень всего 10 ГБ ...

Я читал, что там может быть ckpacct для циклического перемещения и gzip-файла, но я не могу найти его, также нет альтернативной команды?

РЕДАКТИРОВАТЬ : Я обнаружил, что sudo accton off отключает ведение журнала, но файлы остаются там, и я думаю, что моя следующая загрузка будет активирована снова ...

Похоже, что они зациклены, но кто на самом деле это делает?

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

РЕДАКТИРОВАТЬ : мои сценарии загрузки догадки делают цикл ... в любом случае, я создал этот сценарий, [ 1114] но я не знаю, какие последствия для безопасности это может иметь .. какие-либо соображения?

cat >ckpacct.sh

#!/bin/bash

if [[ -n "$1" ]]; 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(($1!=0));then exit 1; fi
}

cd /var/log/account;FUNCerror $? || exit

# 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
3
задан 22 February 2019 в 03:22

3 ответа

Сценарий, который циклически просматривает журналы, находится в /etc/cron.daily/acct. Количество файлов журнала контролируется /etc/default/acct, который также контролирует, должен ли учет процессов включаться во время загрузки.

Если вы хотите полностью исключить учет процессов, sudo apt-get purge acct тоже должны с этим справиться.

0
ответ дан 22 February 2019 в 03:22

Получите cron действия cron.hourly вместо ежедневного. Затем поместите эти значения в /etc/default/acct:

ACCT_ENABLE="1"

# Amount of days that the logs are kept.
ACCT_LOGGING="2" # you cannot set this less than 2 
                 # if you don't want acct to get an error
0
ответ дан 22 February 2019 в 03:22

Я понимаю, что это старый вопрос, но так как на него не было ответа ...

Я бы предположил, что logrotate выполняет ротацию логов. Проверьте ваш crontab ("crontab -l") для задачи logrotate, которая идентифицирует файл conf. Посмотрите в этом файле conf подробности, связанные с /var/log/account/pacct.

Я не читал ваш сценарий внимательно, но похоже, что вы дублируете то, что делает logrotate - нет?

0
ответ дан 22 February 2019 в 03:22

Другие вопросы по тегам:

Похожие вопросы: