aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2011-12-01 05:47:51 +0000
committerDoug Barton <dougb@FreeBSD.org>2011-12-01 05:47:51 +0000
commite6e12a8ca94bd77d51d84dd32eeb1505597ad4b3 (patch)
tree447857f72f628d9b3ab05f87ab3592a9ddc418f9
parentdbda2ab542ad6df75dff0c1486e4d4591b959acf (diff)
Notes
-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 b964616c320b..d11745de6eab 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;;