Saya mendapat 2 file besar di, /var/log/account
, masing-masing 350MB…, root saya hanya 10GB…
Saya membaca mungkin ada ckpacct
untuk menggilir dan gzip, tetapi saya tidak dapat menemukannya, juga tidak ada perintah alternatif?
EDIT :Saya menemukan bahwa sudo accton off
nonaktifkan logging tetapi file tetap ada, dan saya kira boot saya berikutnya akan diaktifkan lagi…
Mereka sepertinya sedang bersepeda tapi siapa yang melakukannya?
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 :skrip boot tebakan saya melakukan siklus… bagaimanapun, saya membuat skrip ini, tetapi saya tidak tahu apa implikasi keamanannya.. ada pertimbangan?
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
Jawaban yang Diterima:
Skrip yang menggilir log ada di /etc/cron.daily/acct
. Jumlah file log dikendalikan oleh /etc/default/acct
, yang juga mengontrol apakah akuntansi proses harus diaktifkan saat boot.
Jika Anda ingin sepenuhnya menghapus akuntansi proses, sudo apt-get purge acct
harus melakukan trik juga.