Los mensajes checkgroups son enviados por los
administradores de noticias para hacer que todos los servidores de una red sincronicen
sus ficheros active con la realidad de Usenet. Por ejemplo,
los proveedores de servicio de Internet deberían mandar tal mensaje a los servidores
de sus clientes. Una vez al mes, el moderador del grupo comp.announce.newgroups envía el
mensaje “oficial” checkgroups para las
principales jerarquías. Sin embargo, se envía como un artículo ordinario, no como
un mensaje de control. Para realizar la operación
checkgroups
, salve este artículo en un fichero, digamos /tmp/check,
borre todo hasta el principio del mismo mensaje de control, y envíelo al guión
checkgroups usando la orden siguiente:
# su news -c "/usr/lib/news/ctl/checkgroups" < /tmp/check |
Esto actualizará su fichero newsgroups, añadiendo los grupos
listados en localgroups. El antiguo fichero
newsgroups será movido a
newsgroups.bac. Note que rara vez funciona el enviar
el mensaje localmente, ya que inews, rechaza un artículo tan grande.
Si C-News encuentra desigualdades entre la lista del fichero
checkgroups y el fichero
active, producirá una lista de órdenes que actualizaría
su servidor, y lo enviará por correo al administrado de noticias.
Típicamente la salida se parece a esto:
From news Sun Jan 30 16:18:11 1994
Date: Sun, 30 Jan 94 16:18 MET
From: news (News Subsystem)
To: usenet
Subject: Problems with your active file
The following newsgroups are not valid and should be removed.
alt.ascii-art
bionet.molbio.gene-org
comp.windows.x.intrisics
de.answers
You can do this by executing the commands:
/usr/lib/news/maint/delgroup alt.ascii-art
/usr/lib/news/maint/delgroup bionet.molbio.gene-org
/usr/lib/news/maint/delgroup comp.windows.x.intrisics
/usr/lib/news/maint/delgroup de.answers
The following newsgroups were missing.
comp.binaries.cbm
comp.databases.rdb
comp.os.geos
comp.os.qnx
comp.unix.user-friendly
misc.legal.moderated
news.newsites
soc.culture.scientists
talk.politics.crypto
talk.politics.tibet |
Cuando reciba un mensaje como éste de su sistema de noticias, no lo crea ciegamente. Dependiendo de
quién envió el mensaje checkgroups, puede que carezca
de unos pocos grupos e incluso jerarquías enteras; por lo tanto, debería tener cuidado al borrar
cualquier grupo. Si encuentra grupos listados como no presentes que quiera tener en su servidor,
tiene que añadirlos usando el guión addgroup.
Salve la lista de grupos que le faltan en un fichero y páseselo al siguiente guión:
#!/bin/sh
#
WHOIAM=`whoami`
if [ "$WHOIAM" != "news" ]
then
echo "Debe ejecutar $0 como usuario 'news'" >&2
exit 1
fi
#
cd /usr/lib/news
while read group; do
if grep -si "^$group[[:space:]].*moderated" newsgroup; then
mod=m
else
mod=y
fi
/usr/lib/news/maint/addgroup $group $mod
done |