310.accounting revision 77496
128263Spst#!/bin/sh 228263Spst# 350472Speter# $FreeBSD: head/etc/periodic/daily/310.accounting 77496 2001-05-30 20:23:43Z brian $ 428263Spst# 528263Spst 661981Sbrian# If there is a global system configuration file, suck it in. 761981Sbrian# 861981Sbrianif [ -r /etc/defaults/periodic.conf ] 961981Sbrianthen 1061981Sbrian . /etc/defaults/periodic.conf 1161981Sbrian source_periodic_confs 1261981Sbrianfi 1328320Spst 1461981Sbriancase "$daily_accounting_enable" in 1561981Sbrian [Yy][Ee][Ss]) 1665843Sbrian if [ ! -f /var/account/acct ] 1761981Sbrian then 1865843Sbrian echo '$daily_accounting_enable is set but /var/account/acct' \ 1965843Sbrian "doesn't exist" 2065843Sbrian rc=2 2177496Sbrian elif [ -z "$daily_accounting_save" ] 2277496Sbrian then 2377496Sbrian echo '$daily_accounting_enable is set but ' \ 2477496Sbrian '$daily_accounting_save is not' 2577496Sbrian rc=2 2665843Sbrian else 2761981Sbrian echo "" 2861981Sbrian echo "Rotating accounting logs and gathering statistics:" 2961981Sbrian 3061981Sbrian cd /var/account 3165843Sbrian rc=0 3277492Sbrian 3377492Sbrian n=$daily_accounting_save 3477492Sbrian rm -f acct.$n.gz acct.$n || rc=3 3577492Sbrian m=$n 3677492Sbrian n=$(($n - 1)) 3777492Sbrian while [ $n -ge 0 ] 3877492Sbrian do 3977492Sbrian [ -f acct.$n.gz ] && { mv -f acct.$n.gz acct.$m.gz || rc=3; } 4077492Sbrian [ -f acct.$n ] && { mv -f acct.$n acct.$m || rc=3; } 4177492Sbrian m=$n 4277492Sbrian n=$(($n - 1)) 4377492Sbrian done 4465843Sbrian cp -pf acct acct.0 || rc=3 4577492Sbrian sa -s $daily_accounting_flags || rc=3 4662054Sbrian 4762054Sbrian case "$daily_accounting_compress" in 4862054Sbrian [Yy][Ee][Ss]) 4965843Sbrian gzip -f acct.0 || rc=3;; 5062054Sbrian esac 5161981Sbrian fi;; 5265843Sbrian 5365843Sbrian *) rc=0;; 5461981Sbrianesac 5565843Sbrian 5665843Sbrianexit $rc 57