## $Revision: 4351 $ ## innwatch.ctl -- control file for innwatch. ## Indicates what to run to test the state of the news system, and what ## to do about it. Format: ## !state!when!command!test!limit!command!reason/comment ## where ## Delimiter; pick from [,:@;?!] ## State to enter if true. ## States we must be in to match. ## Command to run to test condition. ## Operator to use in test(1) command. ## Value to test against. ## Command for innwatch to perform; use exit, ## flush, go, pause, shutdown, skip, or throttle. ## Used in ctlinnd command (if needed). ## First, just exit innwatch if innd has gone away. !!! test -f ${LOCKS}/innd.pid && echo 0 || echo 1 ! eq ! 1 ! exit ! innd dead ## If another innwatch has started, exit. !!! cat ${LOCKS}/LOCK.${PROGNAME} ! ne ! $$ ! exit ! innwatch replaced ## Next test the load average. Above first threshold pause, above higher ## threshold throttle, below restart limit undo whatever was done. !load!load hiload! uptime | tr -d ,. | awk '{ print $(NF - 2) }' ! lt ! ${INNWATCHLOLOAD} ! go ! loadav !hiload!+ load! uptime | tr -d ,. | awk '{ print $(NF - 2) }' ! gt ! ${INNWATCHHILOAD} ! throttle ! loadav !load!+! uptime | tr -d ,. | awk '{ print $(NF - 2) }' ! gt ! ${INNWATCHPAUSELOAD} ! pause ! loadav ## ## Uncomment these to keep overchan backlog in check. Assumes your overchan ## feed is named 'overview!'. #::overblog:ctlinnd feedinfo overview!|awk 'NR==1{print $7}':lt:100000:go:overviewbacklog #:overblog:+:ctlinnd feedinfo overview!|awk 'NR==1{print $7}':gt:400000:throttle:overviewbacklog ## ## If load is OK, check space (and inodes) on various filesystems !!! ${INNDF} . ! lt ! ${INNWATCHSPOOLSPACE} ! throttle ! No space (spool) !!! ${INNDF} ${BATCH} ! lt ! ${INNWATCHBATCHSPACE} ! throttle ! No space (newsq) !!! ${INNDF} ${PATHDB} ! lt ! ${INNWATCHLIBSPACE} ! throttle ! No space (newslib) !!! ${INNDF} -i . ! lt ! ${INNWATCHSPOOLNODES} ! throttle ! No space (spool inodes) !!! ${INNDF} ${OVERVIEWDIR} ! lt ! ${INNWATCHSPOOLSPACE} ! throttle ! No space (overview)