version 2 : y'a plus rien faire, le script s'occuppe de tout.
darcs-hash:20011105175937-a279a-2bf71ee78cdb9553ffd1208e4c597a93a45a05f1.gz
This commit is contained in:
parent
fec52d30bb
commit
d6d04440c6
1 changed files with 98 additions and 19 deletions
117
fix-active
117
fix-active
|
@ -1,28 +1,67 @@
|
|||
#/bin/sh
|
||||
#
|
||||
## à utiliser en cas de plantage et de non synchro de /var/lib/news/active.
|
||||
# à utiliser en cas de plantage et de non synchro de /var/lib/news/active.
|
||||
#
|
||||
# ctlinnd throttle ' '
|
||||
# V 2.0 :
|
||||
# à lancer tel quel. théoriquement le script s'occuppe de tout.
|
||||
#
|
||||
## À ce niveau, il est TRES important de vérifier que l'on ne peut plus
|
||||
## poster de messages dans les news.
|
||||
## Puis il faut vérifier que le fichier active a la bonne syntaxe, du début
|
||||
## à la fin, i-e :
|
||||
## <newsgroup> <num_dernier_post> <num_premier_post> y
|
||||
## Sinon, il faut corriger à la main.
|
||||
#
|
||||
#
|
||||
#
|
||||
# V 1.0 :
|
||||
# ctlinnd throttle ''
|
||||
# à ce niveau, il est TRES important de vérifier que l'on ne peut plus poster de messages.
|
||||
# puis il faut vérifier que le fichier active a la bonne syntaxe du début à la fin, i-e :
|
||||
# newsgroup nombre nombre y
|
||||
# sinon, il faut corriger à la main.
|
||||
# ./fix-active < /var/lib/news/active > active.new
|
||||
# cp active.new /var/lib/news/active
|
||||
#
|
||||
## Important : vérifier les droits de active (inn ne démarre pas s'il râle à
|
||||
## cause des droits...)
|
||||
#
|
||||
# chmod 664 /var/lib/news/active
|
||||
# chown news.news /var/lib/news/active
|
||||
# ctlinnd go ''
|
||||
#
|
||||
## le 1/11/01 2h40 -- Nico
|
||||
#
|
||||
# le 1/11/01 2h40 -- Nico
|
||||
if [ 1 -le "$#" ] ; then
|
||||
echo "erreur : il ne faut pas mettre d'argument"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f /tmp/active.new ] ; then
|
||||
echo "/tmp/active.new: le fichier existe déjà ! Effacer ? y/n"
|
||||
read reply1;
|
||||
case $reply1 in
|
||||
y* | Y* | o* | O*)
|
||||
echo "OK, on le remplace avec une version toute neuve"
|
||||
rm -f /tmp/active.new
|
||||
;;
|
||||
n* | N*)
|
||||
echo "OK, on le laisse"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "`cat /usr/scripts/active.template | wc -l`" -ne "`cat /var/lib/news/active | wc -l`" ] ; then
|
||||
echo "Attention, soit le template est obsolète, soit /var/lib/news/active est corrompu (nb de ligne diffère)"
|
||||
echo "continuer ? y/n"
|
||||
read reply2;
|
||||
case $reply2 in
|
||||
y* | Y* | o* | O*)
|
||||
echo "OK, on écrase le active corrompu"
|
||||
mv /var/lib/news/active /var/lib/news/active.bak
|
||||
echo active sauvé en /var/lib/news/active.bak
|
||||
;;
|
||||
n* | N*)
|
||||
echo "OK, on laisse active en place ; corriger active.template"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
echo "arrêt d'innd..."
|
||||
ctlinnd throttle 'COUPURE TEMPORAIRE -- NICO'
|
||||
sleep 5
|
||||
sync
|
||||
|
||||
touch /tmp/active.new
|
||||
cd /var/spool/news/articles
|
||||
while read gr hi lo md
|
||||
do
|
||||
|
@ -40,5 +79,45 @@ do
|
|||
last=$hi
|
||||
fi
|
||||
fi
|
||||
printf "%s %010d %010d %s\n" $gr $last $lo $md
|
||||
done
|
||||
printf "%s %010d %010d %s\n" $gr $last $lo $md >> /tmp/active.new
|
||||
done < /var/lib/news/active
|
||||
|
||||
echo "affichage du diff"
|
||||
echo " "
|
||||
|
||||
diff /tmp/active.new /var/lib/news/active
|
||||
|
||||
echo " "
|
||||
|
||||
diff /tmp/active.new /var/lib/news/active > /dev/null &&
|
||||
{
|
||||
echo "la version générée et la version en place sont identiques : on ne fait rien." ;
|
||||
echo "redémarrage d'innd..."
|
||||
ctlinnd go ''
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
diff /tmp/active.new /var/lib/news/active > /dev/null ||
|
||||
{
|
||||
echo "la version générée et la version en place diffèrent : il faut la remplacer" ;
|
||||
echo "souhaitez-vous remplacer le fichier actuellement en place ? y/n" ;
|
||||
read reply3;
|
||||
case $reply3 in
|
||||
y* | Y* | o* | O*)
|
||||
echo "OK, on le remplace"
|
||||
cp /tmp/active.new /var/lib/news/active
|
||||
chown news.news /var/lib/news/active
|
||||
chmod 664 /var/lib/news/active
|
||||
;;
|
||||
n* | N*)
|
||||
echo "OK, on le laisse, mais il faut corriger cela !"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
echo "redémarrage d'innd..."
|
||||
ctlinnd go ''
|
||||
|
||||
exit 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue