Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 62df2b702f393aa95101151477919ab2 > files > 2

awffull-3.10.2-2mdv2010.0.i586.rpm

#!/bin/sh

# /etc/cron.daily/awffull: AwfFull daily maintenance script
# Written by Jose Carlos Medeiros <jose@psabs.com.br> based on 
# webalizer.cron.daily that was in webalizer package
# 
# Modified Fri Jun 22 2007 for Mandriva Linux by oeriksson@mandriva.com

# This script just run awffull agains all .conf files in /etc/awffull directory

AWFFULL="/usr/bin/awffull"
AWFFULL_CONFDIR="/etc/awffull"
LOCKFILE="/tmp/awffull.lock"

# store the system locales
SYSTEM_LANG="$LANG"
if [ -z ${SYSTEM_LANG} ]; then
    SYSTEM_LANG="C"
fi

SYSTEM_LANGUAGE="$LANGUAGE"
if [ -z ${SYSTEM_LANGUAGE} ]; then
    SYSTEM_LANGUAGE="C"
fi

[ -x ${AWFFULL} ] || exit 0
[ -d ${AWFFULL_CONFDIR} ] || exit 0

# bail out if previous run was unsuccessfull
if [ -f ${LOCKFILE} ]; then
    ERROR_MESSAGE="the ${LOCKFILE} file was found indicating an error. Maybe awffull is still running..."
    echo "$0 : ${ERROR_MESSAGE}"
    logger -i -p local1.err -t $0 "${ERROR_MESSAGE}"
    exit 1
fi

# make the lockfile
touch ${LOCKFILE}

RETVAL="0"
for i in ${AWFFULL_CONFDIR}/*.conf; do

    # run agains a rotated or normal logfile
    LOGFILE=`awk '$1 ~ /^LogFile$/ {print $2}' $i`

    # empty ?
    [ -s "${LOGFILE}" ] || exit 0

    # readable ?
    [ -r "${LOGFILE}" ] || exit 1

    # there was a output ?
    OUTDIR=`awk '$1 ~ /^OutputDir$/ {print $2}' $i`

    #  exists something ?
    [ "${OUTDIR}" != "" ] || exit 1

    # its a directory ?
    [ -d ${OUTDIR} ] || exit 1

    # its writable ?
    [ -w ${OUTDIR} ] || exit 1

    # change the generated html to preferred language
    AWFFULL_LANG=`awk -F '=' '/^#AWFFULL_LANG=/ {print $2}' $i`
    if [ -z "${AWFFULL_LANG}" ]; then
	LANG="${SYSTEM_LANG}"
    else
	LANG="${AWFFULL_LANG}"
    fi

    AWFFULL_LANGUAGE=`awk -F '=' '/^#AWFFULL_LANGUAGE=/ {print $2}' $i`
    if [ -z "${AWFFULL_LANGUAGE}" ]; then
	LANGUAGE="${SYSTEM_LANGUAGE}"
    else
	LANGUAGE="${AWFFULL_LANGUAGE}"
    fi

    # Run Really quietly, exit with status code if !0
    ${AWFFULL} -c ${i} -Q || exit $?
    RETVAL=$?

    # Non rotated log file
    NLOGFILE=`awk '$1 ~ /^LogFile$/ {gsub(/\.[0-9]+(\.gz)?/,""); print $2}' $i`

    # check current log, if last log is a rotated logfile
    if [ "${LOGFILE}" != "${NLOGFILE}" ]; then

        # empty ?
        [ -s "${NLOGFILE}" ] || exit 0

        # readable ?
        [ -r "${NLOGFILE}" ] || exit 1
    
        ${AWFFULL} -c ${i} -Q ${NLOGFILE}
        RETVAL=$?
    fi
done

# delete the lockfile if successful
if [ $RETVAL -eq 0 ]; then
    rm -f ${LOCKFILE}
fi

# exit with awffull's exit code
exit $RETVAL