home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- # doexpire - overall administration for expire
-
- # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
- . ${NEWSCONFIG-/var/lib/news/bin/config}
-
- PATH=$NEWSCTL/bin:$NEWSBIN/expire:$NEWSBIN:$NEWSPATH ; export PATH
- umask $NEWSUMASK
-
- lock="$NEWSCTL/LOCKexpire"
- ltemp="$NEWSCTL/L.$$"
- echo $$ >$ltemp
- trap "rm -f $ltemp ; exit 0" 0 1 2 15
- if newslock $ltemp $lock
- then
- trap "rm -f $ltemp $lock ; exit 0" 0 1 2 15
- else
- echo "$0: expire apparently already running" | mail "$NEWSMASTER"
- exit 1
- fi
-
- hopt=
- if test " `spacefor 1 archive`" -le 0
- then
- (
- echo "$0:"
- echo " Space shortage in archiving area!"
- echo " Unable to archive old articles -- holding them in"
- echo " current directories using \`expire -h'. If shortage"
- echo " persists, human action is urgently needed."
- ) | mail "$NEWSMASTER"
- hopt=-h
- fi
-
- cd $NEWSCTL
- forcer=no
- for o
- do
- if test " $o" = " -r"
- then
- forcer=yes
- ropt=
- fi
- done
- case "$forcer" in
- no) ropt=-r
- for counter in x x x x # four tries
- do
- rm -f history.o # it's about to vanish anyway
- size="`sizeof history history.pag history.dir`"
- if test " `spacefor $size control`" -gt 0
- then
- ropt=
- break
- fi
- sleep 600 # and hope it will improve
- done
- if test " $ropt" = " -r"
- then
- (
- echo "$0:"
- echo " SEVERE SPACE SHORTAGE in $NEWSCTL !"
- echo " Unable to rebuild history files due to insufficient"
- echo " space for temporaries -- resorting to \`expire -r'."
- echo " Growth of the history files will make things worse;"
- echo " if shortage persists, human action is urgently needed."
- ) | mail "$NEWSMASTER"
- fi
- ;;
- esac
-
- expire $ropt $hopt $* $NEWSCTL/explist 2>/tmp/doex$$
- if test -s /tmp/doex$$
- then
- (echo 'expire problems:' ; cat /tmp/doex$$ ) | mail "$NEWSMASTER"
- rm -f /tmp/doex$$
- exit 1
- fi
- rm -f /tmp/doex$$
- exit 0
-