diff --git a/fix-active b/fix-active new file mode 100644 index 00000000..f7636ca3 --- /dev/null +++ b/fix-active @@ -0,0 +1,44 @@ +#/bin/sh +# +## à utiliser en cas de plantage et de non synchro de /var/lib/news/active. +# +# ctlinnd throttle ' ' +# +## À 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 : +## 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 +# +cd /var/spool/news/articles +while read gr hi lo md +do + d="`echo $gr | tr . /`" + hi="`echo $hi | sed -e 's/^00*//'`" + lo="`echo $lo | sed -e 's/^00*//'`" + if [ "$hi" = '' ] ; then + hi=0 + fi + if [ $hi -eq 0 -a $lo -eq 1 ] ; then + last=0 + else + last="`ls -1 $d 2>/dev/null | sort -n | grep '^[1-9][0-9]*$' | tail -1`" + if [ "$last" = '' ] ; then + last=$hi + fi + fi + printf "%s %010d %010d %s\n" $gr $last $lo $md +done