Ключевые слова:inn, news, (найти похожие документы)
Date: Tue, 24 Apr 2001 23:53:05 +0400
From: Andy Shevchenko <Andy.Shevchenko@f192.n465.z2.fidonet.org>
Newsgroups: fido7.ru.linux
Subject: Автоматическое создание несуществующих NEWS-групп в INN
aprlu> Каким образом сделать так, чтобы статьи приходящие сабжу в
aprlu> несуществующие
aprlu> ньюсгруппы не пропадали? В общем нужен автокриейтинг ньюсгруп. статьи
aprlu> поступают через через rpost и innxmit.
Ставишь в конфиге, чтобы они падали в junk и запускаешь раз в день такой
скриптец
#!/bin/bash
# Данный скрипт автоматом создает новые newsgroups по письмам в junk
# created by andy@smcl.donetsk.ua (Andy Shevchenko, 2:465/192@fidonet)
# configuration part, change this to reflect your installation
. /etc/fidonet/fidoscp.conf
# name of program
NAME=`basename $0`
# where to log processing - file or tty/console
LOGGING=$NEWSLOGDIR/$NAME.log
LOCKFILE=$LOCKDIR/LCK..$NAME
# end of configuration part -------------------
#
# main
#
list=`ls $JUNK`
if [ -n "$list" -a ! -f $LOCKFILE -a -s $UNW ]
then
echo $$ > $LOCKFILE
echo "`date \"+%b %d %T\"` $NAME[$$]: starting" >> $LOGGING
echo -n "`date \"+%b %d %T\"` $NAME[$$]: pausing server... " >> $LOGGING
$BIN/ctlinnd pause "Autocreate" >> $LOGGING
for ACT in `cat $UNW | awk -F " " '{print $2}'`
do
echo -n "`date \"+%b %d %T\"` $NAME[$$]: create new group: ${ACT}... " >>
$LOGGING
echo $ACT >> $UNWTMPLOG
$BIN/ctlinnd newgroup $ACT >> $LOGGING
done
echo -n "`date \"+%b %d %T\"` $NAME[$$]: reloading active file... " >>
$LOGGING
$BIN/ctlinnd reload active "Autocreate" >> $LOGGING
echo -n "`date \"+%b %d %T\"` $NAME[$$]: going server... " >> $LOGGING
$BIN/ctlinnd go "Autocreate" >> $LOGGING
/usr/bin/inews -f $AUTOCREATEFROM -n $AUTOCREATENEWSGROUP -t "Autocreate
new echo(s)..." $UNWTMPLOG
rm -f $UNWTMPLOG
for MESG in $list
do
newsgroup=`grep "^Newsgroups:" $JUNK/$MESG | awk '{print $2}' | head -1`
if [ -n "$newsgroup" ]
then
echo "`date \"+%b %d %T\"` $NAME[$$]: moving junked message $MESG
to $newsgroup" >> $LOGGING
mv $JUNK/$MESG $ART/`echo $newsgroup | sed -e 's/\./\//g'`/$MESG
2>/dev/null
fi
done
echo -n "`date \"+%b %d %T\"` $NAME[$$]: renumber articles... " >> $LOGGING
$BIN/ctlinnd renumber '' >> $LOGGING
echo "`date \"+%b %d %T\"` $NAME[$$]: finished" >> $LOGGING
rm -f $LOCKFILE
fi
--
With best regards,
Andy Shevchenko. mailto: andy@smcl.donetsk.ua