summaryrefslogtreecommitdiffstats
path: root/etc/periodic
diff options
context:
space:
mode:
Diffstat (limited to 'etc/periodic')
-rwxr-xr-xetc/periodic/daily/310.accounting18
1 files changed, 12 insertions, 6 deletions
diff --git a/etc/periodic/daily/310.accounting b/etc/periodic/daily/310.accounting
index b964616..d11745d 100755
--- a/etc/periodic/daily/310.accounting
+++ b/etc/periodic/daily/310.accounting
@@ -30,8 +30,13 @@ case "$daily_accounting_enable" in
cd /var/account
rc=0
- n=$daily_accounting_save
- rm -f acct.$n.gz acct.$n || rc=3
+ n=$(( $daily_accounting_save - 1 ))
+ for f in acct.*; do
+ case "$f" in acct.\*) continue ;; esac # No files match
+ m=${f%.gz} ; m=${m#acct.}
+ [ $m -ge $n ] && { rm $f || rc=3; }
+ done
+
m=$n
n=$(($n - 1))
while [ $n -ge 0 ]
@@ -44,13 +49,14 @@ case "$daily_accounting_enable" in
/etc/rc.d/accounting rotate_log || rc=3
+ rm -f acct.merge && cp acct.0 acct.merge || rc=3
+ sa -s $daily_accounting_flags /var/account/acct.merge || rc=3
+ rm acct.merge
+
case "$daily_accounting_compress" in
[Yy][Ee][Ss])
- gzip --keep -f acct.0 || rc=3;;
+ gzip -f acct.0 || rc=3;;
esac
-
- sa -s $daily_accounting_flags /var/account/acct.0 &&
- unlink acct.0 || rc=3
fi;;
*) rc=0;;
OpenPOWER on IntegriCloud