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