I wonder if news.daily is working properly?

The Doctor doctor at doctor.nl2k.ab.ca
Fri Oct 6 00:16:00 UTC 2000


I just switched to CNFS/ovdb, YAY!!

However, no news.daily report in my mailbox :-(

I am not certain whether to use uniover.


Here is what I have:

------------ news.daily -------------


#!/bin/sh
##  $Revision: 1.5 $
##  Daily news maintenance.
##  Optional arguments:
##	expdir=xxx	Directory in which to build new history file
##	tmpdir=xxx	Working directory for `sort' and such
##	expirectl=xxx	Use xxx as expire.ctl file
##	flags=xxx	Pass xxx flags to expire
##	lowmark		Create and use a lowmark file
##	noexpire	Do not expire
##	noexplog	Do not log expire output
##	nologs		Do not scan logfiles
##	nomail		Do not capture and mail output
##	norenumber	Do not renumber the active file
##	norm		Do not remove certain old files
##	norotate	Do not rotate logfiles
##	nostat		Do not run innstat
##	notdaily        Not a daily run, and therefore implies nologs.
##	delayrm		Delay unlink files, then do it quicker (expire -z)
##	/full/path	Path to a program to run before expiring

. /var/news/lib/innshellvars

EXPLOG=${MOST_LOGS}/expire.log
INNSTAT=${PATHBIN}/innstat
HOSTNAME=`hostname`
DATE=`date`
AZ=ABCDEFGHIJKLMNOPQRSTUVWXYZ
az=abcdefghijklmnopqrstuvwxyz
TAGGEDHASH=
SORT=sort

##  If your expire does not pause or throttle innd, enable this next line:
#MESSAGE="Expiration script $$"
##  Renumber all at once, or in steps?  Set to the delay if steps (that
##  may take a long time!).
RENUMBER=

PROGNAME=news.daily
LOCK=${LOCKS}/LOCK.${PROGNAME}

##  Set defaults.
DAILY=true
DOEXPIRE=true
DOEXPLOG=true
DOEXPIREOVER=false
DOLOGS=true
DOMAIL=true
DORENUMBER=true
DORM=true
DOSTAT=true
EXPIRECTL=
EXPDIR=
EXPIREFLAGS="-v1"
EXPIREOVER=expireover
LOWMARKFILE=
RMFILE=

HISTDIR="`dirname ${HISTORY}`"
TOUT=600   # timeout value for ctlinnd commands
if [ -z "${HISTDIR}" -o X"." = X"${HISTDIR}" -o ! -d "${HISTDIR}" ]; then
    if [ -d "${PATHETC}/hist" ]; then
	HISTDIR="${PATHETC}/hist"
    else
	HISTDIR="${PATHETC}"
    fi
fi
ENABLEOVERVIEW=`echo X${ENABLEOVERVIEW} | tr ${AZ} ${az}`
if [ ${ENABLEOVERVIEW} = x"true" -o ${ENABLEOVERVIEW} = x"yes" -o ${ENABLEOVERVIEW} = x"on" ]; then
    DOEXPIREOVER=true
    RMFILE=${MOST_LOGS}/expire.rm
fi

EXPIREOVERFLAGS=
PROGRAMS=
POSTPROGRAMS=
REASON=
SCANARG=
DOGROUPBASEEXPIRY=false

GROUPBASEEXPIRY=`echo X${GROUPBASEEXPIRY} | tr ${AZ} ${az}`
if [ ${GROUPBASEEXPIRY} = x"true" -o ${GROUPBASEEXPIRY} = x"yes" -o ${GROUPBASEEXPIRY} = x"on" ]; then
    DOEXPIREOVER=true
    RMFILE=${MOST_LOGS}/expire.rm
    DOGROUPBASEEXPIRY=true
fi

##  Parse JCL.
for I
do
    case "X$I" in
    Xdelayrm)
	RMFILE=${MOST_LOGS}/expire.rm
	;;
    Xexpctl=*)
	EXPIRECTL=`expr "${I}" : 'expctl=\(.*\)'`
	case ${EXPIRECTL} in
	/*)
	    ;;
	*)
	    EXPIRECTL=`/bin/pwd`/${EXPIRECTL}
	    ;;
	esac
	;;
    Xexpdir=*)
	EXPDIR=`expr "${I}" : 'expdir=\(.*\)'`
	;;
    Xtmpdir=*)
	TMPDIR=`expr "${I}" : 'tmpdir=\(.*\)'`
	;;
    Xexpireover)
	DOEXPIREOVER=true
	RMFILE=${MOST_LOGS}/expire.rm
	;;
    Xexpireoverflags=*)
	EXPIREOVERFLAGS=`expr "${I}" : 'expireoverflags=\(.*\)'`
	;;
    Xflags=*)
	EXPIREFLAGS=`expr "${I}" : 'flags=\(.*\)'`
	;;
    Xlowmark)
	LOWMARKFILE=${MOST_LOGS}/expire.lowmark
	DORENUMBER=false
	;;
    Xnotdaily)
        DAILY=false
	DOLOGS=false
	;;
    Xnoexpire)
	DOEXPIRE=false
	;;
    Xnoexpireover)
	DOEXPIREOVER=false
	RMFILE=
	;;
    Xnoexplog)
	DOEXPLOG=false
	;;
    Xnologs)
	DOLOGS=false
	;;
    Xnomail)
	DOMAIL=false
	MAIL="cut -c 1-1022 | ${SED} -e 's/^~/~~/'"
	;;
    Xnonn)
	# Ignore this.
	;;
    Xnorenumber)
	DORENUMBER=false
	;;
    Xnorm)
	DORM=false
	;;
    Xnorotate)
	SCANARG="${SCANARG} norotate"
	;;
    Xnostat)
	DOSTAT=false
	;;
    X/*)
	PROGRAMS="${PROGRAMS} ${I}"
	;;
    Xpostexec=*)
	POSTEXEC=`expr "${I}" : 'postexec=\(.*\)'`
	POSTPROGRAMS="${POSTPROGRAMS} ${POSTEXEC}"
	;;
    *)
	echo "Unknown flag ${I}" 1>&2
	exit 1
	;;
    esac
done

##
## Setup mail subject and command
##
if ${DAILY} ; then
   MAILSUBJ="${HOSTNAME} Daily Usenet report for ${DATE}"
else
   MAILSUBJ="${HOSTNAME} intermediate usenet report for ${DATE}"
fi
MAIL="cut -c 1-1022 | ${SED} -e 's/^~/~~/' | \
    ${MAILCMD} -s '$MAILSUBJ' ${NEWSMASTER}"

#
#	Sanity check. Shouldn't we just bail out here with an error
#	instead of trying to patch things up?
#
${DOEXPIRE} || {
    EXPDIR=
    RMFILE=
}

test -n "${EXPDIR}" && {
	test -z "${REASON}" && REASON="Expiring $$ on ${EXPDIR}"
	EXPIREFLAGS="${EXPIREFLAGS} '-d${EXPDIR}' '-r${REASON}'"
}

test -n "${RMFILE}" && {
	if ${DOGROUPBASEEXPIRY} ; then
	    EXPIREOVERFLAGS="${EXPIREOVERFLAGS} -z${RMFILE}"
	else
	    EXPIREFLAGS="${EXPIREFLAGS} -z${RMFILE}"
	fi
    }

test -n "${LOWMARKFILE}" && {
	EXPIREOVERFLAGS="${EXPIREOVERFLAGS} -Z${LOWMARKFILE}"
}


if ${DOMAIL} ; then
    ##  Try to get a temporary file.
    TEMP=${TMPDIR}/doex$$
    test -f ${TEMP} && {
	echo "Temporary file ${TEMP} exists" | eval ${MAIL}
	exit 1
    }
    touch ${TEMP}
    chmod 0660 ${TEMP}
    exec 3>&1 >${TEMP} 2>&1
fi

cd ${PATHETC}

##  Show the status of the news system.
${DOSTAT} && {
    ${INNSTAT}
    echo ''
}

##  Lock out others.
trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
shlock -p $$ -f ${LOCK} || {
    ( echo "$0: Locked by `cat ${LOCK}`"; ${INNSTAT} ) | eval ${MAIL}
    exit 1
}

##  Run any user programs.
if [ -n "${PROGRAMS}" ] ; then
    for P in ${PROGRAMS} ; do
	echo ''
	echo "${P}:"
	eval ${P}
    done
fi

${DOLOGS} && {
    echo ''
    scanlogs ${SCANARG}
}

# group based expiry (delete expired overview first)
if [ ${DOGROUPBASEEXPIRY} = true -a ${DOEXPIREOVER} = true ] ; then
    if ${DOEXPLOG}; then
	echo "${EXPIREOVER} start `date`: (${EXPIREOVERFLAGS})" >>${EXPLOG}
    fi
    ( exec 2>&1 ; eval ${EXPIREOVER} "${EXPIREOVERFLAGS}" >>${EXPLOG})
    if ${DOEXPLOG}; then
	echo "${EXPIREOVER} end `date`" >>${EXPLOG}
    fi
    test -n "${LOWMARKFILE}" && {
	echo "lowmarkrenumber begin `date`: (${LOWMARKFILE})"   >>${EXPLOG}
	ctlinnd -s -t`wc -l <${ACTIVE}` lowmark ${LOWMARKFILE} 2>&1
	echo "lowmarkrenumber end `date`"                           >>${EXPLOG}
	rm -f ${MOST_LOGS}/expire.lastlowmark
	mv ${LOWMARKFILE} ${MOST_LOGS}/expire.lastlowmark
    }
    test -n "${RMFILE}" -a -s "${RMFILE}" && {
	mv ${RMFILE} ${RMFILE}.$$ && RMFILE=${RMFILE}.$$

	test -n "${TMPDIR}" && SORT="${SORT} -T ${TMPDIR}"	
	${SORT} -u -o ${RMFILE} ${RMFILE}
	if ${DOEXPLOG}; then
	    echo "	expirerm start `date`" >>${EXPLOG}
	fi
	expirerm ${RMFILE}
	if ${DOEXPLOG}; then
	    echo "	expirerm end `date`" >>${EXPLOG}
	fi
    }
    DOEXPIREOVER=false
fi

##  The heart of the matter:  prologs, expire, epilogs.
if ${DOEXPIRE} ; then

    ## Wait to be fairly certain innwatch is not in the middle of a pass
    ## Since we're locked, innwatch will pause now till we're done
    sleep 30

    ##  See if we're throttled for lack of space.
    SERVERMODE=`ctlinnd -t $TOUT mode 2>/dev/null | ${SED} 1q`
    case "${SERVERMODE}" in
    'Server paused'*'[innwatch:'*)
	## If paused, by innwatch, then turn pause into throttle
	## as we're going to stay that way for a while now
	ctlinnd -t $TOUT -s throttle \
	    "`expr \"${SERVERMODE}\" : 'Server paused \(.*\)'`" || {
	    ( echo "$0: Cannot throttle while innwatch paused";
	      ${INNSTAT} ) | eval ${MAIL}
	    exit 1
	}
    esac
    case "${SERVERMODE}" in
    *space*" -- throttling")
	echo "${SERVERMODE} -- trying to recover"
	THROTTLED=true
	EXPIREFLAGS="${EXPIREFLAGS} -n"
	MESSAGE=
	;;
    *"[innwatch:"*)
	echo "${SERVERMODE} -- pressing on"
	THROTTLED=false
	EXPIREFLAGS="${EXPIREFLAGS} -n"
	MESSAGE=
	DORENUMBER=false
	;;
    *)
	THROTTLED=false
	;;
    esac

    ##  Throttle server if we need to.
    if [ -n "${MESSAGE}" ] ; then
	ctlinnd -t $TOUT -s -t120 throttle "${MESSAGE}" 2>&1 || {
	    ( echo "$0: Cannot throttle news"; ${INNSTAT} ) | eval ${MAIL}
	    exit 1
	}
    fi

    #
    #  Get rid of an old expire RMFILE since news.daily locks itself and
    #  we would not get here if another instance were still running.
    #        
    if [ -n "${RMFILE}" ] ; then
        rm -f ${RMFILE}
    fi

    ##  Actual expire the articles (finally!).
    test -n "${EXPIRECTL}" && EXPIREFLAGS="${EXPIREFLAGS} ${EXPIRECTL}"
    if ${DOEXPLOG}; then
	echo "expire begin `date`: (${EXPIREFLAGS})"		>>${EXPLOG}
	( cd ${HISTDIR}; exec 2>&1 ; eval expire "${EXPIREFLAGS}" ) \
	    | ${SED} -e '/No such file or directory/d' \
		     -e 's/^/    /' >>${EXPLOG}
	echo "expire end `date`"				>>${EXPLOG}
    else
	eval expire "${EXPIREFLAGS}" 2>&1 | grep -v 'No such file or directory'
    fi

    ##  If built on another filesystem, move history files.
    if [ -n "${EXPDIR}" ] ; then
	if [ ! -f ${EXPDIR}/history.n -o ! -f ${EXPDIR}/history.n.done ] ; then
	    ( echo "$0: No new history files"; ${INNSTAT} ) | eval ${MAIL}
	    exit 1
	fi
	cp /dev/null ${HISTORY}
	mv -f ${EXPDIR}/history.n ${HISTORY}
	mv -f ${EXPDIR}/history.n.dir ${HISTORY}.dir
	if [ X${TAGGEDHASH} = XDO ] ; then
	    mv -f ${EXPDIR}/history.n.pag ${HISTORY}.pag
	else
	    mv -f ${EXPDIR}/history.n.index ${HISTORY}.index
	    mv -f ${EXPDIR}/history.n.hash ${HISTORY}.hash
	fi
	rm -f ${EXPDIR}/history.n.done

	case "${EXPIREFLAGS}" in
	*-n*)
	    ;;
	*)
	    MESSAGE="${REASON}"
	    ;;
	esac
    fi

    ##  Restart the server if we need to.
    if ${THROTTLED} || test -n "${MESSAGE}" ; then
	ctlinnd -t "$TOUT" -s go "${MESSAGE}" 2>&1 || {
	    ( echo "$0: Cannot unthrottle news"; ${INNSTAT} ) | eval ${MAIL}
	    exit 1
	}
    fi
    if ${DOEXPLOG}; then
	echo "	all done `date`" >>${EXPLOG}
    fi
fi

##  Remove old sockets.
${DORM} &&
    find ${TEMPSOCKDIR} -name "${TEMPSOCK}" -mtime +2 -exec rm -f '{}' ';'

##  Did we became throttled during the run?
SERVERMODE=`ctlinnd mode 2>/dev/null | ${SED} 1q`
case "${SERVERMODE}" in
*space*" -- throttling")
    ##  We did, try to unthrottle the server.
    echo "${SERVERMODE} -- trying to recover"    
    ctlinnd -s go ""
    ;;
esac

##  Release the lock now, everything below this must be able to withstand
##  simultaneous news.daily's running.   We do this so innwatch can start
##  monitoring again asap after the expire is done -- removing the
##  articles isn't critical, nor is the renumber.
rm ${LOCK}

## Remove the articles that are supposed to go
if [ ${DOEXPIRE} = true -a ${DOGROUPBASEEXPIRY} != true ] ; then
    test -n "${RMFILE}" -a -s "${RMFILE}" && {
	mv ${RMFILE} ${RMFILE}.$$ && RMFILE=${RMFILE}.$$

	test -n "${TMPDIR}" && SORT="${SORT} -T ${TMPDIR}"	
	${SORT} -u -o ${RMFILE} ${RMFILE}
	if ${DOEXPLOG}; then
	    echo "	expirerm start `date`" >>${EXPLOG}
	fi
	expirerm ${RMFILE}
	if ${DOEXPLOG}; then
	    echo "	expirerm end `date`" >>${EXPLOG}
	fi
	${DOEXPIREOVER} && {
	    if ${DOEXPLOG}; then
		echo "	${EXPIREOVER} start `date`" >>${EXPLOG}
	    fi
	    eval ${EXPIREOVER} "${EXPIREOVERFLAGS}" 2>&1 | \
	      grep -v 'No such file or directory'
	    DOEXPIREOVER=false
	    if ${DOEXPLOG}; then
		echo "	${EXPIREOVER} end `date`" >>${EXPLOG}
	    fi
	}
	test -n "${LOWMARKFILE}" && {
	    echo "lowmarkrenumber begin `date`: (${LOWMARKFILE})"   >>${EXPLOG}
	    ctlinnd -s -t`wc -l <${ACTIVE}` lowmark ${LOWMARKFILE} 2>&1
	    echo "lowmarkrenumber end `date`"                           >>${EXPLOG}
	    rm -f ${MOST_LOGS}/expire.lastlowmark
	    mv ${LOWMARKFILE} ${MOST_LOGS}/expire.lastlowmark
	}
    }
    # expire overview lines for files we just removed
    if ${DOEXPIREOVER}; then
	if ${DOEXPLOG}; then
	    echo "	${EXPIREOVER} start `date`" >>${EXPLOG}
	fi
	eval ${EXPIREOVER} "${EXPIREOVERFLAGS}" 2>&1 | \
	    grep -v 'No such file or directory'
	DOEXPIREOVER=false
	if ${DOEXPLOG}; then
	    echo "	${EXPIREOVER} end `date`" >>${EXPLOG}
	fi
	test -n "${LOWMARKFILE}" && {
	    echo "lowmarkrenumber begin `date`: (${LOWMARKFILE})"   >>${EXPLOG}
	    ctlinnd -s -t`wc -l <${ACTIVE}` lowmark ${LOWMARKFILE} 2>&1
	    echo "lowmarkrenumber end `date`"                           >>${EXPLOG}
	    rm -f ${MOST_LOGS}/expire.lastlowmark
	    mv ${LOWMARKFILE} ${MOST_LOGS}/expire.lastlowmark
	}
    fi
fi
# in case noexpire expireover
if ${DOEXPIREOVER}; then
    if ${DOEXPLOG}; then
	echo "	${EXPIREOVER} start `date`" >>${EXPLOG}
    fi
    eval ${EXPIREOVER} "${EXPIREOVERFLAGS}" 2>&1 | \
	grep -v 'No such file or directory'
    if ${DOEXPLOG}; then
	echo "	${EXPIREOVER} end `date`" >>${EXPLOG}
    fi
    test -n "${LOWMARKFILE}" && {
	echo "lowmarkrenumber begin `date`: (${LOWMARKFILE})"   >>${EXPLOG}
	ctlinnd -s -t`wc -l <${ACTIVE}` lowmark ${LOWMARKFILE} 2>&1
	echo "lowmarkrenumber end `date`"                           >>${EXPLOG}
	rm -f ${MOST_LOGS}/expire.lastlowmark
	mv ${LOWMARKFILE} ${MOST_LOGS}/expire.lastlowmark
    }
fi

##  Renumber the active file.
if ${DORENUMBER} ; then
    echo ''
    echo 'Renumbering active file.'
    if [ -z "${RENUMBER}" ] ;then
	ctlinnd -s -t`wc -l <${ACTIVE}` renumber '' 2>&1
    else
	while read GROUP hi lo flag ; do
	    ctlinnd -s renumber ${GROUP} 2>&1
	    sleep ${RENUMBER}
	done <${ACTIVE}
    fi
fi

##  Display expire log messages
if ${DOMAIL} ; then
    if [ -s ${EXPLOG} ] ; then
	    echo Expire messages:
	    cat ${EXPLOG}
	    echo ---------
	    echo ''
    fi
fi

##  Show the status of the news system after expiration.
${DOSTAT} && {
    echo 'Post expiration status:' ; echo ''
    ${INNSTAT}
    echo ''
}

##  Mail the report.
if ${DOMAIL} ; then
    # Stop using the temp file, and mail captured output.
    exec 1>&3 2>&1 3>&-
    MAIL="${MAILCMD} -s \"${MAILSUBJ}\" ${NEWSMASTER}"
    test -s ${TEMP} && cat ${TEMP} | ${SED} -e 's/^~/~~/' | eval ${MAIL}
    rm -f ${TEMP}
fi

##  Run any user programs.
if [ -n "${POSTPROGRAMS}" ] ; then
    for P in ${POSTPROGRAMS} ; do
	echo ''
	echo "${P}:"
	eval ${P}
    done
fi

##  All done
if ${DAILY} ; then
    date >${PATHDB}/.news.daily
fi
${RNEWS} -U
exit 0

-------------

------ inn.conf ----------


##  $Id: inn.conf.in,v 1.41 2000/04/07 02:29:52 rra Exp $
##
##  inn.conf -- INN configuration data
##
##  Format:
##      <parameter>:<whitespace><value>
##
##  Blank values are allowed for certain parameters.
##
##  See the inn.conf(5) man page for a full description of each of these
##  options.  This sample file is divided into two sections; first, there
##  are the parameters that must be set (or should be set in nearly all
##  cases), and then all parameters are given with their defaults for
##  reference in the same order and with the same organization as the
##  inn.conf(5) documentation.

# The following parameters are most likely to need setting, although the
# defaults generated by configure may be reasonable.

mta:                    /usr/sbin/sendmail -oi -oem %s
organization:           NetLine 2000 News
ovmethod:               tradindexed
pathhost:               ns2.nl2k.ab.ca
pathnews:               /var/news

# General Settings

domain:
innflags:		-i0 -c1 -r -l2000000
mailcmd:                /var/news/bin/innmail
server:

# Feed Configuration

artcutoff:              14
bindaddress:
hiscachesize:           0
ignorenewsgroups:       false
immediatecancel:        false
linecountfuzz:          0
maxartsize:             2000000
maxconnections:         50
pathalias:
pgpverify:              true
port:                   119
refusecybercancels:     false
remembertrash:          true
sourceaddress:
usecontrolchan:         false
verifycancels:          false
wanttrash:              false
wipcheck:               5
wipexpire:              10

# Article Storage

cnfscheckfudgesize:     0
enableoverview:         true
groupbaseexpiry:        false
mergetogroups:          false
overcachesize:          15
ovgrouppat:
storeonxref:            false
useoverchan:            true
wireformat:             false
xrefslave:              false

# Reading

allownewnews:           true
articlemmap:            false
clienttimeout:          600
nnrpdcheckart:          true
nnrpperlauth:           false
nnrppythonauth:         false
noreader:               false
readerswhenstopped:     false
readertrack:            false

# Reading -- Keyword Support
#
# Enabling this without stopping innd and deleting the existing overview
# database and adding will probably confuse a lot of things.  You must
# have compiled this support in too.

keywords:               false
keyartlimit:            100000
keylimit:               512
keymaxwords:            250

# Posting

addnntppostingdate:     true
addnntppostinghost:     true
checkincludedtext:      false
complaints:
fromhost:
localmaxartsize:        1000000
moderatormailer:
nnrpdauthsender:        false
nnrpdposthost:
nnrpdpostport:          119
spoolfirst:             false
strippostcc:            false

# Posting -- Exponential Backoff

backoffauth:            false
backoffdb:
backoffk:               1
backoffpostfast:        0
backoffpostslow:        1
backofftrigger:         10000

# Monitoring

doinnwatch:             true
innwatchbatchspace:     800
innwatchlibspace:       25000
innwatchloload:         1000
innwatchhiload:         2000
innwatchpauseload:      1500
innwatchsleeptime:      600
innwatchspoolnodes:     200
innwatchspoolspace:     8000

# Logging

docnfsstat:             true
logartsize:             true
logcancelcomm:          false
logcycles:              3
logipaddr:              true
logsitename:            true
nnrpdoverstats:         false
nntpactsync:            200
nntplinklog:            false
status:                 0
timer:                  0

# System Tuning

badiocount:             5
blockbackoff:           120
chaninacttime:          600
chanretrytime:          300
icdsynccount:           10
maxforks:               10
nicekids:               4
nicenewnews:            0
nicennrpd:              0
pauseretrytime:         300
peertimeout:            3600
rlimitnofile:           -1

# Paths

patharchive:            /var/news/spool/archive
patharticles:           /var/news/spool/articles
pathbin:                /var/news/bin
pathcontrol:            /var/news/bin/control
pathdb:                 /var/news/etc
pathetc:                /var/news/etc
pathfilter:             /var/news/bin/filter
pathhttp:               /var/log/news
pathincoming:           /var/news/spool/incoming
pathlog:                /var/log/news
pathoutgoing:           /var/news/spool/outgoing
pathoverview:           /var/news/spool/overview
pathrun:                /var/news/run
pathspool:              /var/news/spool
pathtmp:                /var/news/tmp

----------------- END --------------

-------- storage.conf ---------


# This file is used to determine which storage method articles are sent to
# to be stored and which storage class they are stored as.  

#
#	Sample for the ``timehash'' storage method:
#
#	method <methodname> {
#		newsgroups: <wildmat>
#		class: <storage class #>
#		size: <minsize>[,<maxsize>]
#		expires: <mintime>[,<maxtime>]
#		options: <options>
#	}
#
#method tradspool {
#	newsgroups: *
#	class: 0
#}
#method timehash {
#	newsgroups: *
#	class: 0
#}
#method timehash {
#	newsgroups: alt.binaries.*
#	class: 1
#	size: 2,32000
#}
#method timehash {
#	newsgroups: alt.*
#	class: 2
#	size: 1
#}

#
#	Sample for the ``cnfs'' storage method:
#
#	methodname:wildmat:storage class #:minsize:maxsize:metacycbuffname
#	method cnfs {
#		newsgroups: <wildmat>
#		class: <storage class #>
#		size: <minsize>[,<maxsize>]
#		expires: <mintime>[,<maxtime>]
#		options: <metacycbuffname>
#	}
#
#method cnfs {
#	newsgroups: *
#	class: 1
#	size: 0,3999
#	expires: 4d1s
#	options: FAQS
#}
#method cnfs {
#	newsgroups: *
#	class: 2
#	size: 0,3999
#	expires: 0s,4d
#	options: SMALLAREA
#}
#method cnfs {
#	newsgroups: *
#	class: 3
#	size: 4000,1000000
#	options: BIGAREA
#}

#	Sample for the ``cnfs'' storage method:
#
#	methodname:wildmat:storage class #:minsize:maxsize:metacycbuffname
#	method cnfs {
#		newsgroups: <wildmat>
#		class: <storage class #>
#		size: <minsize>[,<maxsize>]
#		expires: <mintime>[,<maxtime>]
#		options: <metacycbuffname>
#	}
#

method cnfs {
	newsgroups: *
	class: 1
	size: 0,100000
#	expires: 0s,1d
	options: AREAONE
}
method cnfs {
	newsgroups: *
	class: 2
	size: 100001,250000
#	expires: 0s,1d
	options: AREATWO
}
method cnfs {
	newsgroups: *
	class: 3
	size: 250001,266667
#	expires: 0s,1d
	options: AREATHREE
}
method cnfs {
	newsgroups: *
	class: 4
	size: 266668,284444
#	expires: 0s,1d
	options: AREAFOUR
}
method cnfs {
	newsgroups: *
	class: 5
	size: 284445,300000
#	expires: 0s,1d
	options: AREAFIVE
}
method cnfs {
	newsgroups: *
	class: 6
	size: 300001,400000
#	expires: 0s,1d
	options: AREASIX
}
method cnfs {
	newsgroups: *
	class: 7
	size: 400001,500000
#	expires: 0s,1d
	options: AREASEVEN
}
method cnfs {
	newsgroups: *
	class: 8
	size: 500001,750000
#	expires: 0s,1d
	options: AREAEIGHT
}
method cnfs {
	newsgroups: *
	class: 9
	size: 750001,1000000
#	expires: 0s,1d
	options: AREANINE
}
method cnfs {
	newsgroups: *
	class: 10
	size: 1000001,10000000
#	expires: 0s,1d
	options: AREATEN
}

-------- END -----------

----- cycbuff.conf ---------


#
# Meta cnfs cyclic buffer configuration file (and assignments of newsgroups to
# metacyclic buffers)
#
# The order in this items appear in this file is *important*.

# 1. Cyclic buffers
# Format:
# "cycbuff" (literally) : symbolic buffer name : path to buffer file : 
#       length of symbolic buffer in kilobytes in decimal (1KB = 1024 bytes)

cycbuff:ONE:/var/news/cycbuffs/one:2000000
cycbuff:TWO:/var/news/cycbuffs/two:2000000
cycbuff:THREE:/var/news/cycbuffs/three:2000000
cycbuff:FOUR:/var/news/cycbuffs/four:2000000
cycbuff:FIVE:/var/news/cycbuffs/five:2000000
cycbuff:SIX:/var/news/cycbuffs/six:2000000
cycbuff:SEVEN:/var/news/cycbuffs/seven:2000000
cycbuff:EIGHT:/var/news/cycbuffs/eight:2000000
cycbuff:NINE:/var/news/cycbuffs/nine:2000000
cycbuff:TEN:/var/news/cycbuffs/ten:2000000

# 2. Meta-cyclic buffers
# Format:
# "metacycbuff" (literally) : symbolic meta-cyclic buffer name :
#       comma separated list of cyclic buffer symbolic names
#
# symbolic meta-cyclic buffer name is defined at storage.ctl like;
# cnfs:*:1:0:3999:SMALLAREA
# cnfs:*:2:4000:1000000:BIGAREA

metacycbuff:AREAONE:ONE
metacycbuff:AREATWO:TWO
metacycbuff:AREATHREE:THREE
metacycbuff:AREAFOUR:FOUR
metacycbuff:AREAFIVE:FIVE
metacycbuff:AREASIX:SIX
metacycbuff:AREASEVEN:SEVEN
metacycbuff:AREAEIGHT:EIGHT
metacycbuff:AREANINE:NINE
metacycbuff:AREATEN:TEN

--------- END -----------

---- expire.ctl ---------


/remember/:1

10:1:1:1
1:1:1:1
2:1:1:1
3:1:1:1
4:1:1:1
5:1:1:1
6:1:1:1
7:1:1:1
8:1:1:1
9:1:1:1

--------------------------

----- /etc/crontab ------


# Crontab file; see cron(8) for more information.
#
#	BSDI	crontab,v 2.8 1998/04/09 00:15:39 jch Exp
#	@(#)crontab	8.1 (Berkeley) 6/9/93

SHELL=/bin/sh

0,15,30,45 * * * *	root /usr/bin/at
10 3 * * *	root /bin/sh /etc/daily > /var/log/daily.out 2>&1; /usr/bin/mail -s "$(hostname -s) daily run output" root < /var/log/daily.out
10 4 * * 6	root /bin/sh /etc/weekly > /var/log/weekly.out 2>&1; /usr/bin/mail -s "$(hostname -s) weekly run output" root < /var/log/weekly.out
20 4 1 * *	root /bin/sh /etc/monthly > /var/log/monthly.out 2>&1; /usr/bin/mail -s "$(hostname -s) monthly run output" root < /var/log/monthly.out

# INN (netnews) programs
# (uncomment these to do normal news processing)
#
# daily cleanup and expiration
0 1 * * *       news /var/news/etc/news.daily
# process articles posted while server not answering
15 3 * * *      news /var/news/bin/rnews -U
#0 0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * *      news /var/news/bin/expire -v1
#0 0 * * *      news /var/news/bin/expireindex
#0 0 * * *      news /var/news/bin/expirerm
#0 0 * * *      news /var/news/bin/expireover
# process outgoing feeds every 15 mins...
3,8,13,18,23,28,33,38,43,48,53,58 * * * * news /var/news/bin/nntpsend
* * * * * news /var/news/etc/send-nntp news.uunet.ca

# Hylafax programs
# (uncomment these to do normal fax daemon cleanup)
#7 * * * *	root /usr/contrib/bin/faxqclean
#25 23 * * * 	fax  /usr/contrib/bin/faxcron > /var/log/faxcron.out 2>&1; /usr/bin/mail -s "$(hostname -s) fax run output" root < /var/log/faxcron.out

--------------- END -------- 

Pointers Please.



More information about the inn-workers mailing list