310.accounting revision 65843
128263Spst#!/bin/sh
228263Spst#
350472Speter# $FreeBSD: head/etc/periodic/daily/310.accounting 65843 2000-09-14 17:19:15Z 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
2762054Sbrian
2865843Sbrian	    rm -f acct.3.gz acct.3 || rc=3
2965843Sbrian	    [ -f acct.2.gz ] && { mv -f acct.2.gz acct.3.gz || rc=3; }
3065843Sbrian	    [ -f acct.2 ] &&    { mv -f acct.2 acct.3 || rc=3; }
3165843Sbrian	    [ -f acct.1.gz ] && { mv -f acct.1.gz acct.2.gz || rc=3; }
3265843Sbrian	    [ -f acct.1 ] &&    { mv -f acct.1 acct.2 || rc=3; }
3365843Sbrian	    [ -f acct.0.gz ] && { mv -f acct.0.gz acct.1.gz || rc=3; }
3465843Sbrian	    [ -f acct.0 ] &&    { mv -f acct.0 acct.1 || rc=3; }
3565843Sbrian	    cp -pf acct acct.0 || rc=3
3665843Sbrian	    sa -s >/dev/null || rc=3
3762054Sbrian
3862054Sbrian	    case "$daily_accounting_compress" in
3962054Sbrian		[Yy][Ee][Ss])
4065843Sbrian		    gzip -f acct.0 || rc=3;;
4162054Sbrian	    esac
4261981Sbrian	fi;;
4365843Sbrian
4465843Sbrian    *)  rc=0;;
4561981Sbrianesac
4665843Sbrian
4765843Sbrianexit $rc
48