chiark / gitweb /
REORG Delete everything that's not innduct or build system or changed for innduct
[innduct.git] / scripts / scanlogs.in
diff --git a/scripts/scanlogs.in b/scripts/scanlogs.in
deleted file mode 100644 (file)
index 6101899..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-#! /bin/sh
-# fixscript will replace this line with code to load innshellvars
-
-##  $Revision: 7770 $
-##  Summarize INN log files.
-##  Optional arguments:
-##     norotate        Do not rotate logfiles
-
-##  If you get an error from this line:
-##     sh -c 'egrep "`ls /etc`" /dev/null'
-##  then get a better egrep, like the FSF one.
-
-##  Directory where old log files are kept.
-OLD=${MOST_LOGS}/OLD
-##  If you want to archive the active file, enable this line.
-ACTIVEFILE=${ACTIVE}
-##  Number of lines of error in each category to report.
-TOP=${TOP-20}
-##  NN log file.
-NN=${PATHETC}/nn/Log
-
-##  Where these programs, if used, write their logs.
-##  We also have to find innfeed's log file.
-INNFEEDLOG=`${AWK} '{gsub(/:|#/, " & ")} {if ($1 == "log-file" && $2 == ":") print $3}' ${PATHETC}/innfeed.conf`
-INNFEED=
-for F in "${INNFEEDLOG}" ; do
-    test -f "${MOST_LOGS}/${F}" && INNFEED="${INNFEED} ${MOST_LOGS}/${F}"
-done
-test -z "${INNFEED}" && test -f ${MOST_LOGS}/innfeed.log && INNFEED="${MOST_LOGS}/innfeed.log"
-
-
-##  Where nntpsend, if used, writes its log information.
-NNTPSEND=${MOST_LOGS}/nntpsend.log
-SENDNNTP=${MOST_LOGS}/send-nntp.log
-SENDUUCP=${MOST_LOGS}/send-uucp.log
-LIVEFILES="${INNFEED} ${NNTPSEND} ${SENDNNTP} ${SENDUUCP}"
-##  Where news.daily places expire output, unless noexplog was used.
-EXPLOG=${MOST_LOGS}/expire.log
-
-##  If you divide your news syslog into separate files, list them here.
-SYSLOG_CRIT=${MOST_LOGS}/news.crit
-SYSLOG_ERR=${MOST_LOGS}/news.err
-SYSLOG_NOTICE=${MOST_LOGS}/news.notice
-SYSLOGS="${SYSLOG_CRIT} ${SYSLOG_ERR} ${SYSLOG_NOTICE}"
-
-##  Where tally control and unwanted processors are found.
-TALLY_CONTROL=${PATHBIN}/tally.control
-TALLY_UNWANTED=${PATHBIN}/tally.unwanted
-UNWANTED_LOG=${MOST_LOGS}/unwanted.log
-CONTROL_LOG=${MOST_LOGS}/control.log
-CONTROL_DATA=
-test -f ${MOST_LOGS}/newgroup.log && CONTROL_DATA=${MOST_LOGS}/newgroup.log
-test -f ${MOST_LOGS}/rmgroup.log \
-       && CONTROL_DATA="${CONTROL_DATA} ${MOST_LOGS}/rmgroup.log"
-
-##  Build up the list of log files to process.
-LOGS="${ERRLOG} ${EXPLOG} ${LOG} ${ACTIVEFILE} ${SYSLOGS} ${UNWANTED_LOG}"
-
-for F in ${LIVEFILES} ; do
-    test -n "${F}" -a -f "${F}" && LOGS="${LOGS} ${F}"
-done
-
-test -n "${CONTROL_DATA}" && LOGS="${LOGS} ${CONTROL_LOG}"
-for F in checkgroups default ihave newgroup rmgroup sendme sendsys \
-       senduuname version miscctl badcontrol failedpgp badpgp; do
-    test -f ${MOST_LOGS}/${F}.log && LOGS="${LOGS} ${MOST_LOGS}/${F}.log"
-done
-
-PROGNAME=scanlogs
-LOCK=${LOCKS}/LOCK.${PROGNAME}
-
-##  Set defaults.
-ROTATE=true
-
-##  Parse JCL.
-for I
-do
-    case "X${I}" in
-    Xnonn)
-       # Ignore this.
-       ;;
-    Xnorotate)
-       ROTATE=false
-       ;;
-    *)
-       echo "Unknown flag ${I}" 1>&2
-       exit 1
-       ;;
-    esac
-done
-
-##  Make sure every log exists.
-for F in ${LOGS} ; do
-    test ! -f ${F} && touch ${F}
-done
-
-##  Temporary files.
-T=${TMPDIR}/scan$$
-PROBS=${TMPDIR}/scanlog$$
-trap "rm -f ${T} ${PROBS}; exit 0" 0 1 2 3 15
-
-##  Rotate the logs?
-if ${ROTATE} ; then
-    ##  Lock out others.
-    shlock -p $$ -f ${LOCK} || {
-       echo "$0: Locked by `cat ${LOCK}`"
-       exit 1
-    }
-    trap "rm -f ${T} ${PROBS} ${LOCK}; exit 0" 1 2 3 15
-
-    HERE=`pwd`
-    cd ${MOST_LOGS}
-    test ! -d ${OLD} && mkdir ${OLD}
-
-    ctlinnd -s logmode
-    PAUSED=false
-    ctlinnd -s pause "Flushing log and syslog files" 2>&1 && PAUSED=true
-    OUTPUT=`ctlinnd flushlogs 2>&1`
-    if [ "$OUTPUT" != "Ok" -a "$OUTPUT" != "In debug mode" ]; then
-       echo "$OUTPUT"
-       echo 'Cannot flush logs.'
-       rm -f ${LOCK}
-       exit 1
-    fi
-
-    ##  Make sure these .old files exist, in case innd is down.
-    for F in ${LOG} ${ERRLOG} ${EXPLOG} ; do
-       if [ ! -f ${F}.old ]; then
-           rm -f ${F}.old
-           cp ${F} ${F}.old
-           cat /dev/null >${F}
-       fi
-    done
-
-    ##  Copy syslog files, truncating old inode since syslog has it open.
-    for F in ${SYSLOGS}; do
-       rm -f ${F}.old
-       cp ${F} ${F}.old
-       cat /dev/null >${F}
-    done
-    ctlinnd -s logmode
-
-    ##  Make a copy of the active file.
-    if [ -n ${ACTIVEFILE} ] ; then
-       BASE=`basename ${ACTIVEFILE}`
-       rm -f ${OLD}/${BASE}.old
-       cp ${ACTIVEFILE} ${OLD}/${BASE}.old
-    fi
-
-    ##  These are live files, so use link rather than copy.
-    for F in ${LIVEFILES} ; do
-       if [ -f ${F} ]; then
-           rm -f ${F}.old ${F}.new
-           ln ${F} ${F}.old
-           touch ${F}.new
-           chmod 0660 ${F}.new
-           mv ${F}.new ${F}
-       fi
-    done
-
-    ##  Tally control messages if we logged them.
-    test -n "${CONTROL_DATA}" && cat ${CONTROL_DATA} | ${TALLY_CONTROL}
-
-    ${PAUSED} && ctlinnd -s go "Flushing log and syslog files" 2>&1
-
-    cd ${OLD}
-    for F in ${LOGS}; do
-       ##  Process the current (just-flushed) log
-       BASE=`basename ${F}`
-       rm -f ${OLD}/${BASE}
-       case ${F} in
-       ${SYSLOG_CRIT}|${ERRLOG}|${EXPLOG}|${LOG}|${SYSLOG_NOTICE})
-           ##  Make a link that can be deleted (since if not rotating
-           ##  we delete the copy that is made in ${TMPDIR}).
-           mv ${F}.old ${OLD}/${BASE}
-           rm -f ${OLD}/${BASE}.0
-           ln ${OLD}/${BASE} ${OLD}/${BASE}.0
-           ;;
-       ${ACTIVEFILE})
-           mv ${BASE}.old ${OLD}/${BASE}
-           ;;
-       ${SYSLOG_ERR})
-           mv ${F}.old ${OLD}/${BASE}
-           ;;
-       ${UNWANTED_LOG})
-           ##  Rotate and compress the file.
-           BASE=`basename ${F}`
-           if [ ! -f ${BASE} -a -f ../${BASE} ]; then
-               cp ../${BASE} ${BASE}
-               chmod 0440 ${BASE}
-           fi
-           if [ -f ${BASE} ]; then
-               ${LOG_COMPRESS} <${BASE} >${BASE}.0${Z} && rm -f ${BASE}
-               chmod 0440 ${BASE}.0${Z}
-
-               ##  Do rotation.
-               if [ X${LOGCYCLES} = X ]; then       
-                   LOGCYCLES=3
-               fi
-               EXT=${LOGCYCLES}
-               rm -f ${BASE}.${LOGCYCLES}${Z}
-               while [ ${EXT} -gt 0 ] ; do
-                   NEXT=${EXT}
-                   EXT=`expr ${EXT} - 1`
-                   test -f ${BASE}.${EXT}${Z} \
-                       && rm -f ${BASE}.${NEXT}${Z} \
-                       && mv ${BASE}.${EXT}${Z} ${BASE}.${NEXT}${Z}
-               done
-           fi
-           ##  Innreport assumes where unwanted.log exists, so leave it
-           ##  and process later.
-           ;;
-       *)
-           if [ -f ${F}.old ]; then
-               mv ${F}.old ${OLD}/${BASE}
-           else
-               rm -f ${OLD}/${BASE} ${F}.new
-               touch ${F}.new
-               chmod 0660 ${F}.new
-               ln ${F} ${F}.old
-               mv ${F}.new ${F}
-               mv ${F}.old ${OLD}/${BASE}
-           fi
-           ;;
-       esac
-    done
-    cd ${HERE}
-else
-    ##  Don't use the real OLD directory, instead use TMPDIR
-    OLD=${TMPDIR}
-
-    ##  Make a snapshot of what we need for below.
-    ctlinnd -s pause "Snapshot log and syslog files" 2>&1
-    for F in ${SYSLOG_CRIT} ${ERRLOG} ${EXPLOG} ${LOG} ${SYSLOG_NOTICE} ; do
-       BASE=`basename ${F}`
-       rm -f ${OLD}/${BASE}.0
-       cp ${F} ${OLD}/${BASE}.0
-    done
-    ctlinnd -s go "Snapshot log and syslog files" 2>&1
-fi
-
-##
-##  We now (finally!) have copies of the log files where we need them.
-##
-
-##  Display syslog critical messages.
-BASE=`basename ${SYSLOG_CRIT}`
-OLD_SYSLOG=${OLD}/${BASE}.0
-if [ -s ${OLD_SYSLOG} ] ; then
-    echo Syslog critical messages:
-    cat ${OLD_SYSLOG}
-    echo ---------
-    echo ''
-fi
-rm -f ${OLD_SYSLOG}
-
-##  Display error log.
-BASE=`basename ${ERRLOG}`
-OLD_ERRLOG=${OLD}/${BASE}.0
-if [ -s ${OLD_ERRLOG} ] ; then
-    echo Error log:
-    cat ${OLD_ERRLOG}
-    echo ---------
-    echo ''
-fi
-rm -f ${OLD_ERRLOG}
-
-##  Scan for various problems in articles we were offered or sent...
-BASE=`basename ${LOG}`
-OLD_LOG=${OLD}/${BASE}.0
-
-##  and summarize syslog information.
-BASE=`basename ${SYSLOG_NOTICE}`
-OLD_SYSLOG=${OLD}/${BASE}.0
-if [ -s ${OLD_SYSLOG} -o -s ${OLD_LOG} ] ; then
-    ${PATHBIN}/innreport -f ${PATHETC}/innreport.conf ${OLD_SYSLOG} ${OLD_LOG}
-    echo ---------
-    echo ''
-fi
-rm -f ${OLD_LOG} ${OLD_SYSLOG}
-if ${ROTATE} ; then
-    BASE=`basename ${UNWANTED_LOG}`
-    if [ -f ${UNWANTED_LOG}.old ]; then
-       mv ${UNWANTED_LOG}.old ${OLD}/${BASE}
-    else
-       rm -f ${OLD}/${BASE}
-       cp ${UNWANTED_LOG} ${OLD}/${BASE}
-       chmod 0660 ${OLD}/${BASE}
-    fi
-fi
-
-OLD_SYSLOG=${OLD}/${EXPLOG}.0
-rm -f ${EXPLOG}
-
-##  Compress and rotate the logs.
-if ${ROTATE} ; then
-    cd ${OLD}
-    if [ X${LOGCYCLES} = X ]; then       
-        LOGCYCLES=3
-    fi
-    for F in ${LOGS} ; do
-       ##  Skip if it's unwanted.log, since it's already rotated
-       if [ ${F} = ${UNWANTED_LOG} ]; then
-           continue
-       fi
-       ##  Skip if file doesn't exist.
-       BASE=`basename ${F}`
-       test -f ${BASE} || continue
-
-       ##  Compress the file.
-       ${LOG_COMPRESS} <${BASE} >${BASE}.0${Z} && rm -f ${BASE}
-       chmod 0440 ${BASE}.0${Z}
-
-       ##  Do rotation.
-       EXT=${LOGCYCLES}
-       rm -f ${BASE}.${LOGCYCLES}${Z}
-       while [ ${EXT} -gt 0 ] ; do
-           NEXT=${EXT}
-           EXT=`expr ${EXT} - 1`
-           test -f ${BASE}.${EXT}${Z} \
-               && rm -f ${BASE}.${NEXT}${Z} \
-               && mv ${BASE}.${EXT}${Z} ${BASE}.${NEXT}${Z}
-       done
-    done
-
-    ##  Remove lock.
-    rm -f ${LOCK}
-fi
-
-##  All done.
-exit 0