310.accounting revision 77492
128263Spst#!/bin/sh
228263Spst#
350472Speter# $FreeBSD: head/etc/periodic/daily/310.accounting 77492 2001-05-30 16:46:53Z 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
2165843Sbrian	else
2261981Sbrian	    echo ""
2361981Sbrian	    echo "Rotating accounting logs and gathering statistics:"
2461981Sbrian
2561981Sbrian	    cd /var/account
2665843Sbrian	    rc=0
2777492Sbrian	
2877492Sbrian	    n=$daily_accounting_save
2977492Sbrian	    rm -f acct.$n.gz acct.$n || rc=3
3077492Sbrian	    m=$n
3177492Sbrian	    n=$(($n - 1))
3277492Sbrian	    while [ $n -ge 0 ]
3377492Sbrian	    do
3477492Sbrian		[ -f acct.$n.gz ] && { mv -f acct.$n.gz acct.$m.gz || rc=3; }
3577492Sbrian		[ -f acct.$n ] &&    { mv -f acct.$n acct.$m || rc=3; }
3677492Sbrian		m=$n
3777492Sbrian		n=$(($n - 1))
3877492Sbrian	    done
3965843Sbrian	    cp -pf acct acct.0 || rc=3
4077492Sbrian	    sa -s $daily_accounting_flags || rc=3
4162054Sbrian
4262054Sbrian	    case "$daily_accounting_compress" in
4362054Sbrian		[Yy][Ee][Ss])
4465843Sbrian		    gzip -f acct.0 || rc=3;;
4562054Sbrian	    esac
4661981Sbrian	fi;;
4765843Sbrian
4865843Sbrian    *)  rc=0;;
4961981Sbrianesac
5065843Sbrian
5165843Sbrianexit $rc
52