%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                       Rese\~na Legal                          %
%                                                               %
% Este documento es copyright (C) de Olaf Kirch,                %
% okir@monad.swb.de                                             %
%                                                               %
% Para las condiciones de copia, por favor referirse al fichero %
% COPYING.                                                      %
%                                                               %
% El autor no es responsable de ningun da\~no, directo o        %
% indirecto, resultado del uso de la informaci\'on dada en este %
% documento.                                                    %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Cuando Ud. vea este documento con el vi en una pantalla de 80 %
% columnas, haga primero un ':se nonumber'.                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
% Traduccion realizada por:                                     %
%   Jose Manuel Puerta, a900226@zipi.fi.upm.es                  %
%                                                               %
% Revisado en Mayo-1997 por:                                    %
%   Juan Jose Amor, jjamor@ls.fi.upm.es y                       %
%                                                               %
% Revisado el 26-Mayo-1999 por:                                 %
%   I\~naki Arenaza <inaki.arenaza@jet.es>                      %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%        C O M I E N Z O   D E L   C A P I T U L O              %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\newslib{\file{/usr/lib/news}}
\def\newsbin{\file{/usr/lib/news/bin}}
\def\newsspool{\file{/var/spool/news}}

\chapter{C-News}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% C\'omo funciona C-News                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews}
\index{C News|(}

Uno de los paquetes de software m\'as populares para las NetNews es
C-News.  Fue dise\~nado para servidores que llevan noticias sobre
enlaces UUCP.  Este cap\'{\i}tulo discutir\'a los conceptos centrales de
C-News, y las tareas de instalaci\'on b\'asica y de mantenimiento.


\index{C News!directorio de cola}
C-News almacena sus ficheros de configuraci\'on en \newslib{}, y la
mayor\'{\i}a de sus ficheros binarios en el directorio \newsbin{}. Los
art\'{\i}culos se guardan en \newsspool. Ud. debe estar seguro
de que todos los ficheros en estos directorios son propiedad del
usuario \user{news}, grupo \user{news}. La mayor\'{\i}a de los problemas
surgen de la inaccesibilidad de los ficheros por C-News. Ud. debe
tener como regla general el ser usuario \user{news} usando \prog{su}
antes de tocar nada ah\'{\i}. La \'unica excepci\'on es \prog{setnewsids}, que
se usa para establecer la identificaci\'on real del usuario de algunos
programas de noticias. \'Este debe ser propiedad del \user{root} y debe
tener el bit setuid activado.


A continuaci\'on, describimos todos los ficheros de configuraci\'on de
C-News en detalle, y le mostraremos lo que tiene que hacer para
mantener su servidor en funcionamiento.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Entrega de Noticias}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.rnews}
\index{inews@\prog{inews}}
\index{rnews@\prog{rnews}}

\index{entregando!noticias}
Los art\'{\i}culos deben ser suministrados a C-News de varias maneras.
Cuando un usuario local env\'{\i}a un art\'{\i}culo, el lector de noticias
usualmente lo entrega al comando \prog{inews}, el cual completa la
informaci\'on de cabecera. Las noticias del servidor remoto, tanto si es
un \'unico mensaje como un lote entero, son entregadas al comando
\prog{rnews}, el cual lo almacena en el directorio
\newsspool\file{/in.coming}, de donde lo coger\'a \prog{newsrun} m\'as
tarde.  Sin embargo, con cualquiera de estas dos t\'ecnicas el art\'{\i}culo
ser\'a finalmente entregado al comando \prog{relaynews}.


\index{C News!relaynews@\prog{relaynews}}
\index{C News!fichero de historial@\file{history} file}
\index{C News!fichero activo@\file{active} file}
\index{noticias!fichero activo@\file{active} file}
\index{noticias!history}
\index{C News!recibiendo noticias|(}
\index{noticias!identificador de mensaje}
Para cada art\'{\i}culo, el comando \prog{relaynews} consulta primero si el
art\'{\i}culo ha sido visto en el servidor local buscando el identificador
del mensaje en el fichero \file{history}. Los art\'{\i}culos duplicados
ser\'an eliminados.  Entonces, \prog{relaynews} mira la l\'{\i}nea de
cabecera del \mhdr{Newsgroup:} para averiguar si el servidor local
solicita art\'{\i}culos de cualquiera de estos grupos. Si lo hace, y el
grupo de noticias est\'a listado en el fichero \file{active},
\prog{relaynews} intenta almacenar el art\'{\i}culo en el correspondiente
directorio en el area de cola de noticias. Si no existe este
directorio, se crea. El identificador del mensaje del art\'{\i}culo ser\'a
entonces registrado en el fichero \file{history}. De otra manera,
\prog{relaynews} elimina el mensaje.


\index{grupo de noticias basura@\ngrp{junk} newsgroup}
Si \prog{relaynews} falla al almacenar un art\'{\i}culo entrante porque un
grupo al que sido enviado no est\'a listado en su fichero \file{activo},
el art\'{\i}culo ser\'a movido al grupo \ngrp{junk}.\footnote{ Debe haber
  una diferencia entre los grupos que existen en su servidor, y
  aquellos que su servidor est\'a preparado para recibir. Por ejemplo,
  la lista de subscripci\'on debe especificar \ngrp{comp.all}, lo que
  significa todos los grupos de noticias bajo la jerarqu\'{\i}a
  \ngrp{comp}, pero en su servidor, solo un n\'umero de grupos
  \ngrp{comp} son listados en \file{activo}. Los art\'{\i}culos enviados a
  esos grupos ser\'an movidos a \ngrp{junk}.  } \prog{relaynews}
tambi\'en comprobar\'a art\'{\i}culos caducados o mal fechados y los rechazar\'a.
Los lotes entrantes que fallan por cualquier raz\'on son movidos a
\newsspool\file{/in.coming/bad}, y es registrado un mensaje de error.


Despu\'es de esto, el art\'{\i}culo ser\'a transmitido a todos los otros
servidores que soliciten noticias de estos grupos, usando el
transporte especificado para cada servidor determinado. Para estar
seguro de que no es enviado a un servidor que ya lo ha visto, cada
servidor de destino es comparado con el campo \mhdr{Path:} de cabecera
del art\'{\i}culo, el cual contiene la lista de servidores hasta los que el
art\'{\i}culo ha llegado, escritos en notaci\'on de camino UUCP con
signos de admiraci\'on.
S\'olo si el nombre del servidor de destino no aparece en esta lista el
art\'{\i}culo le ser\'a enviado.


\index{C News!UUCP}
\index{UUCP!noticias}
C-News es usado com\'unmente para transmitir noticias entre servidores
UUCP, aunque es tambi\'en posible usarlo bajo un entorno NNTP. Para
entregar noticias a un servidor remoto UUCP~--- tanto un solo art\'{\i}culo
como lotes enteros~--- \prog{uux} es usado para ejecutar el comando
\prog{rnews} en el servidor remoto, y entregarle el art\'{\i}culo o
lote por su entrada est\'andar.


\index{C News!procesando por lotes}
\index{noticias!procesando por lotes}
Cuando el proceso por lotes est\'a permitido para un servidor dado,
C-News no manda inmediatamente ning\'un art\'{\i}culo entrante, sino
que anexiona
su nombre de camino a un fichero, usualmente
\file{out.going/\var{nodo}/togo}. Peri\'odicamente, un programa por
lotes es ejecutado desde la l\'{\i}nea de una \var{tabla de tareas
  planeadas}, \footnote{N. del T.: \var{crontab}} \footnote{ Note que esto
  deber\'{\i}a ser la tabla de tareas planeadas del usuario
\user{noticias}, para no
  destrozar los permisos de los ficheros.  } lo que situa a los
art\'{\i}culos en uno o m\'as ficheros, opcionalmente los comprime, y los
manda a \prog{rnews} en el servidor remoto.


La figura~\ref{cnews.fig.flow} muestra las noticias fluyendo a trav\'es
de \prog{relaynews}. Los art\'{\i}culos deben ser transmitidos al servidor
local (denotado por \keyword{ME}), a alg\'un servidor llamado
\host{ponderosa} v\'{\i}a correo electr\'onico, y a un servidor llamado
\host{moria}, para el cual el proceso por lotes est\'a permitido.


\begin{figure}[htbp]
\iftex
 \ifps
  \begin{center}
   \mbox{\epsffile{figures/flow.epsf}}
  \end{center}
 \else
  \begin{center}
   \input{flow.eepic}
  \end{center}
 \fi
\else
 \verbinclude{flow.ascii}
\fi
 \caption{
  \label{cnews.fig.flow}
  Flujo de noticias mediante \prog{relaynews}.
 }
\end{figure}

\index{C News!receiving news|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Instalaci\'on}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{configurando!C News|(}
\index{configurando!noticias Usenet|(}

Para instalar C-News, descomprima con {\tt tar} los ficheros en el lugar
apropiado, si no lo ha hecho todav\'{\i}a, y edite los ficheros de
configuraci\'on listados abajo. Todos est\'an situados en \newslib.  Sus
formatos ser\'an descritos en las siguientes secciones.

\begin{dispitems}
  \ditem[\file{sys}]
  
  \index{C News!fichero de sistema@\file{sys} file} Probablemente Ud.
  tendr\'a que modificar la l\'{\i}nea \keyword{ME} que describe su sistema,
  aunque usar \keyword{all/all} es tambi\'en una apuesta segura.  Ud.
  tambi\'en tendr\'a que a\~nadir una l\'{\i}nea por cada servidor al
  que quiera mandar noticias.
  
  Si Ud. es un servidor hoja, s\'olo necesita una l\'{\i}nea que mande todos
  los art\'{\i}culos generados localmente a su fuente. Suponga que su fuente
  es \host{moria}, entonces su fichero \file{sys} deber\'{\i}a parecerse a:

  %% No se puede usar entorno verbatim aqui. A Latex2e no le gusta
  %% linuxdoc.sty
  \begin{tscreen}
    ME:all/all::\\
    moria/moria.orcnet.org:all/all,!local:f:
  \end{tscreen}
  
  \ditem[\file{organization}]  
  El nombre de su organizaci\'on. Por ejemplo, ``\term{Cervecera
    Virtual, Inc.}''.  En su m\'aquina de casa, introduzca ``sitio
  privado'', o cualquier cosa que desee.  La mayor\'{\i}a de la gente no
  dir\'a que su servidor est\'a configurado correctamente hasta que no haya
  configurado este fichero.
  
  \ditem[\file{newsgroups}]
  
  \ditem[\file{mailname}]
  El nombre de su servidor de correo, por ejemplo \host{vbrew.com}.
  
  \ditem[\file{whoami}]
    El nombre de su servidor para propositos de noticias. Con frecuencia,
	se usa, por ejemplo, el nombre del servidor UUCP.
  \host{vbrew}.
  
  \ditem[\file{explist}] 
  Probablemente Ud. deber\'{\i}a editar este fichero para reflejar sus
  tiempos de expiraci\'on preferidos para alg\'un grupo de noticias en
  especial. El espacio de disco debe jugar un importante papel en
  esto.
  
\end{dispitems}


\index{C News!crear configuraci\'on inicial}
\index{C News!fichero activo@\file{active} file|(}
\index{C News}
Para crear una jerarqu\'{\i}a inicial de grupos de noticias, obtenga un
fichero \file{active} y un fichero \file{newsgroups} del servidor que
le provee, e inst\'alelos en \newslib, asegur\'andose de que son propiedad
del usuarios news y tienen un modo de protecci\'on 664.  Elimine todos
los grupos \ngrp{to.*} del fichero \file{active}, y a\~nada
\ngrp{to.}\var{mi servidor} y \ngrp{to.}\var{sitio proveedor},
al igual que \ngrp{junk} y \ngrp{control}. Los grupos \ngrp{to.*} se
usan normalmente para intercambiar mensajes
\var{ihave/sendme}\footnote{N. del T.: \var{Tengo/Env\'{\i}ame}} , pero Ud.
deber\'{\i}a crearlos tanto si planea usar \var{ihave/sendme} como si no.
Despu\'es, sustituya todos los numeros de los art\'{\i}culos en el segundo y
tercer campo de \file{active} usando el siguiente comando:


\begin{tscreen}
\begin{verbatim}
# cp active active.old
# sed 's/ [0-9]* [0-9]* / 0000000000 00001 /' active.old > active
# rm active.old
\end{verbatim}
\end{tscreen}

El segundo comando es una invocaci\'on de \prog{sed(1)}, uno de mis
comandos \unix{} favoritos. Esta invocaci\'on sustituye dos cadenas de
d\'{\i}gitos por una cadena de ceros y la cadena \term{000001},
respectivamente.

Finalmente, cree el directorio de cola de noticias y los directorios
usados para noticias entrantes y salientes:

\begin{tscreen}
\begin{verbatim}
# cd /var/spool
# mkdir news news/in.coming news/out.going
# chown -R news.news news
# chmod -R 755 news
\end{verbatim}
\end{tscreen}

Si Ud. est\'a usando una versi\'on de C-News m\'as reciente, deber\'a
crear el directorio \file{out.master} en el directorio de cola de noticias.

Si est\'a usando lectores de noticias de una distribuci\'on diferente de
la de C-News, puede descubrir que algunos de ellos esperan
encontrar la cola de noticias en \file{/usr/spool/news} en vez de en
\file{/var/spool/news}.  Si su lector de noticias no parece encontrar
ning\'un art\'{\i}culo, cree un enlace simb\'olico de \file{/usr/spool/news} a
\file{/var/spool/news}.

Ahora, Ud. est\'a preparado para recibir noticias. Note que no tiene que
crear ning\'un otro directorio m\'as que los vistos arriba, porque cada
vez que C-News recibe un art\'{\i}culo de un grupo para el que todav\'{\i}a no
hay directorio de cola, lo crea.

En particular, esto le ocurre a \emph{todos} los grupos a los que se
ha enviado un art\'{\i}culo cruzado. As\'{\i} que, despu\'es de un
cierto tiempo,
encontrar\'a su cola de noticias llena con directorios para grupos de
noticias a los que Ud. nunca se ha subscrito, como
\ngrp{alt.lang.teco}. Puede evitar esto tanto borrando todos los
grupos no deseados de \file{active}, como ejecutando regularmente un
{\it script del shell} que borre
todos los directorios vac\'{\i}os de \newsspool{} (excepto \file{out.going}
y \file{in.coming}, por supuesto).

\index{C News!fichero activo@\file{active} file|)}
\index{C News!usenet@\user{usenet}}
\index{C News!servidor maestro de noticias}
\index{noticias!servidor maestro de noticias}
\index{servidor maestro de noticas}
C-News necesita un usuario a quien mandar los mensajes de error y los
informes de estado. Por defecto, \'este es \user{usenet}. Si usa el
valor por defecto, tiene que establecer un alias para \'el, el cual
remite todo su correo a una o m\'as personas responsables. (Los
cap\'{\i}tulos~\ref{smail} y~\ref{sendmail} explican c\'omo hacerlo para
\prog{smail} y \prog{sendmail}).  Tambi\'en puede modificar este
comportamiento estableciendo la variable de entorno
\keyword{NEWSMASTER} con el nombre apropiado. Debe hacerlo en el
fichero de la tabla de tareas planeadas de \user{noticias}, asi como
cada vez que invoque manualmente una herramienta administrativa, por
lo que instalar un alias es probablemente m\'as f\'acil.

\index{contrase\~na@\file{passwd}!nombres reales de usuario}
\index{nombres reales de usuario}
\index{nombre completos de usuario}
Aprovechando que est\'a modificando \file{/etc/passwd}, aseg\'urese de que
cada usuario tiene su nombre real en el campo \keyword{pw\_gecos} del
fichero de contrase\~na (\'este es el cuarto campo). Es una cuesti\'on de
normas de etiqueta de Usenet el que el nombre real del remitente
aparezca en el campo \mhdr{From:} del art\'{\i}culo.  Por supuesto, Ud.
querr\'a hacerlo de cualquier manera cuando use el correo.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{El fichero {\protect\tt sys}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.sys}
\index{C News!fichero de sistema@\file{sys} file|(}

El fichero \file{sys}, situado en \newslib, controla qu\'e jerarqu\'{\i}as
recibe y remite a otros servidores. Aunque hay herramientas de
mantenimiento llamadas \prog{addfeed} y \prog{delfeed}, creo que es
mejor mantener este fichero a mano.

El fichero \file{sys} contiene entradas para cada servidor al que Ud.
reenv\'{\i}a noticias adem\'as de descripciones de los grupos de noticias que
Ud. acepta.  Una entrada se parece a:

\begin{tscreen}
\var{sitio}[/\var{exclusiones}]:\var{listagrupos}[/\var{listadist}]
[:\var{flags}[:\var{cmds}]]
\end{tscreen}

Las entradas pueden continuar a lo largo de varias l\'{\i}neas
usando una barra invertida (\keyword{\bs}). Una almohadilla
(\keyword{\#}) denota un comentario.

\begin{dispitems}
  \ditem[\var{sitio}] 
  \'Este es el nombre de los servidores a los que se aplica la entrada.
  Usualmente se elige el nombre del servidor UUCP para esto. Tiene
  que haber tambi\'en una entrada para su servidor en el fichero
  \file{sys}, si no no recibir\'a ning\'un art\'{\i}culo.
  
  \index{C News!recibiendo noticias}
  \index{recibiendo noticias}
  \index{noticias!recibiendo}
  El nombre especial de servidor \keyword{ME} indica su servidor. La
  entrada \keyword{ME} define todos los grupos de noticias que Ud.
  est\'a preparado para almacenar localmente. Los art\'{\i}culos que no
  concuerden con la l\'{\i}nea \keyword{ME} ir\'an al grupo \ngrp{junk}.

  
  \index{C News!excluyendo servidores}
  \index{C News!nombres de anfitriones con alias}
  \index{alias!and C News}
  Puesto que C-News compara el \var{servidor} con los nombres de los
  servidores en la cabecera del campo \mhdr{Path:}, hay que
  estar seguro de que realmente coinciden. Algunos servidores usan su
  nombre de dominio completamente cualificado en este campo, o un alias
  como \ngrp{news.}\var{sitio.dominio}.  Para prevenir que cualquier
  art\'{\i}culo regrese a estos servidores, tiene que a\~nadir esto a la
  lista de exclusi\'on, separada por comas.

  
  Por ejemplo, para la entrada aplicada al servidor \host{moria}, el
  campo del servidor contendr\'{\i}a \host{moria/}\host{moria.orcnet.org}.

  \ditem[\var{listagrupos}]
  \index{C News!intercambiando noticias}
  \index{C News!limitar una fuente}
  Esta es una lista de subscripci\'on, separada por comas, de grupos y
  jerarqu\'{\i}as para ese servidor en particular. Una jerarqu\'{\i}a debe
  especificarse dando el prefijo de la jerarqu\'{\i}a (como \ngrp{comp.os}
  para todos los grupos cuyos nombres empiezan con este prefijo),
  seguido opcionalmente por la palabra clave \ngrp{all} (por ejemplo,
  \ngrp{comp.os.all}).

  
  Para excluir una jerarqu\'{\i}a o grupo de reemisi\'on, debe ser precedido con
  una exclamaci\'on. Si un grupo de noticias encaja con m\'as de una
  definici\'on de la lista, se aplica el emparejamiento m\'as larga.
  Por ejemplo, si la \var{listagrupos} contiene

  \begin{tscreen}


    !comp,comp.os.linux,comp.folklore.computers
  \end{tscreen}
  
  \noindent
  ning\'un grupo de la jerarqu\'{\i}a \ngrp{comp} excepto
  \ngrp{comp.folklore.computers} y todos los grupos bajo
  \ngrp{comp.os.linux} ser\'an administrados a ese servidor.
  
  
  Si el servidor requiere que se le reenv\'{\i}en todas las noticias que
  Ud. recibe, introduzca \keyword{all} como \var{listagrupos}.
  
  \ditem[\var{listadist}]
  \index{C News!limitar una fuente}
  \index{C News!limitar una fuente}
  \index{noticias!distribuciones}
  est\'a separado de \var{listagrupos} por un barra inclinada, y
  contiene una lista de distribuciones para ser reenviada. Ud. puede
  de nuevo excluir ciertas distribuciones precedi\'endolas con una
  exclamaci\'on. Todas las distribuciones se denotan con \keyword{all}.
  El omitir \var{listadist} implica una lista de \keyword{all}.
    
  Por ejemplo, puede usar una lista de distribuci\'on de
  \keyword{all,!local} para impedir que las noticias de uso s\'olo
  local sean enviadas a servidores remotos.
  
  Usualmente hay al menos dos distribuciones: \keyword{world}, que es
  a menudo la distribuci\'on por defecto usada cuando el usuario no
  especifica nada, y \keyword{local}. Puede haber otras
  distribuciones que se empleen para una cierta regi\'on, estado, pa\'{\i}s,
  etc. Finalmente, hay dos distribuciones usadas solamente por
  C-News; \'estas son \keyword{sendme} y \keyword{ihave}, y son usadas
  para el protocolo ihave/sendme.
  
  
  El uso de distribuciones es materia de debate. Para unos, algunos
  lectores de noticias crean falsas distribuciones simplemente usando
  la jerarqu\'{\i}a de alto nivel, por ejemplo \ngrp{comp} cuando se env\'{\i}a
  un mensaje a \ngrp{comp.os.linux}.  Las distribuciones que se
  emplean en regiones son a menudo tambi\'en cuestionables, porque las
  noticias deben viajar fuera de su regi\'on cuando son enviadas a
  trav\'es de Internet.\footnote{ No es infrecuente para un art\'{\i}culo
    enviado en, digamos Hamburgo, ir a Frankfurt v\'{\i}a
    \host{reston.ans.net} en Holanda, o inclusive v\'{\i}a alg\'un servidor
    en E.E.U.U.  } Sin embargo, las distribuciones empleadas para una
  organizaci\'on, son muy significativas, por ejemplo para evitar la
  salida de informaci\'on confidencial de la red de la compa\~n\'{\i}a. No
  obstante, este proposito generalmente se consigue mejor creando un
  grupo de noticias o una jerarqu\'{\i}a separados.
  
  \ditem[\var{flags}]
  
  este campo describe ciertos par\'ametros para la fuente. Puede estar
  vac\'{\i}o, o ser una combinaci\'on de lo siguiente:
  
  \begin{dispitems}
    \ditem[\keyword{F}]
    \index{C News!procesando por lotes}
    Este flag permite el proceso por lotes.
    
    \ditem[\keyword{f}]
    \index{C News!procesando por lotes}
    \'Este es casi id\'entico al flag \keyword{F}, pero permite a C-News
    calcular el tama\~no de los lotes salientes con m\'as precisi\'on.
    
    \ditem[\keyword{I}]
    \index{C News!yotengo/env\'{\i}ame}
    Este flag hace que C-News produzca una lista de art\'{\i}culos apta
    para ser usada por el protocolo ihave/sendme. Hay que hacer
    modificaciones adicionales al fichero \file{sys} y al fichero
    \file{batchparms} para habilitar ihave/sendme.
    
    \ditem[\keyword{n}]
    \index{C News!NNTP support}
    Este flag crea ficheros por lotes para clientes de transferencia NNTP
    activa como \prog{nntpxmit} (ver cap\'{\i}tulo~\ref{nntp}).  Los
    ficheros por lotes contienen el nombre de fichero del art\'{\i}culo
    junto con su identificador de mensaje.
    
    \ditem[\keyword{L}]
    Este flag indica a C-News que s\'olo transmita los mensajes
    generados en su
    servidor. Este flag puede ir ser seguido por un n\'umero decimal
    \var{n}, el cual hace que C-News s\'olo transfiera art\'{\i}culos
    generados a \var{n} saltos desde su servidor. C-News determina el
    numero de saltos a partir del campo \mhdr{Path:}.
    
    \ditem[\keyword{u}]
    Este flag indica a C-News que procese por lotes s\'olo los art\'{\i}culos de
    los grupos no moderados.
    
    \ditem[\keyword{m}]
    Este flag indica a C-News que procese por lotes s\'olo los art\'{\i}culos de
    los grupos moderados.
  \end{dispitems}
  
  Debe usar a lo sumo uno de \keyword{F}, \keyword{f},
  \keyword{I}, o \keyword{n}.
  
  \ditem[\var{cmds}]
  \index{C News!rnews@\prog{rnews}}
  \index{C News!intercambiando noticias}
  \index{C News!mandando noticias}
  Este campo contiene un comando a ser ejecutado para cada art\'{\i}culo, a
  menos que el proceso por lotes est\'e habilitado. El art\'{\i}culo ser\'a
  suministrado al comando a trav\'es de la entrada est\'andar. Esto solo
  deber\'{\i}a usarse para fuentes muy peque\~nas; de otra manera la carga
  en ambos sistemas ser\'{\i}a demasiado alta.
    
  El comando por defecto es
  
  \begin{tscreen}
    uux - -r -z \var{system}\/!rnews
  \end{tscreen}
  
  \noindent
    lo que invoca \prog{rnews} en el sistema remoto, administrando el
  art\'{\i}culo mediante la entrada est\'andar.
  
  
  El camino de b\'usqueda por defecto para los comandos indicados en
  este campo
  es \prog{/bin:/usr/bin:\newsbin/batch}. El \'ultimo directorio
  contiene un un cierto n\'umero de guiones del int\'erprete de comandos
  cuyos
  nombres empiezan por \prog{via}; se describen brevemente m\'as adelante
  en este mismo cap\'{\i}tulo.
  
  \index{C News!proceso por lotes}
  \index{C News!fichero togo@\file{togo} file}
  Si el proceso por lotes est\'a habilitado usando bien los flags
  \keyword{F} o \keyword{f}, \keyword{I} o \keyword{n}, C-News espera
  encontrar un nombre de fichero en este campo en vez de un comando. Si
  el nombre de fichero no empieza con una barra inclinada (\file{/}),
  se supone que es relativo a \newsspool\file{/out.going}. Si el campo
  est\'a vac\'{\i}o, su valor por defecto es \file{\var{system}\//togo}.

\end{dispitems}

Cuando configure C-News, probablemente tendr\'a que escribir su
propio fichero \file{sys}. Para ayudarle con ello, incluimos abajo un
fichero de ejemplo para \host{vbrew.com}, del cual puede copiar lo que
necesite.

\begin{tscreen}
\begin{verbatim}
# Tomamos lo que nos dan.
ME:all/all::

# Enviamos todo lo que recibimos a moria, excepto los articulos locales y
# relacionados con cerveceras. Usamos proceso por lotes.
moria/moria.orcnet.org:all,!to,to.moria/all,!local,!brewery:f:

# Mandamos comp.risks a jack@ponderosa.uucp
ponderosa:comp.risks/all::rmail jack@ponderosa.uucp

# swim obtiene solo algunos grupos
swim/swim.twobirds.com:comp.os.linux,rec.humor.oracle/all,!local:f:

# Guardar los articulos de mapas de correo para procesarlos luego
usenet-maps:comp.mail.maps/all:F:/var/spool/uumaps/work/batch
\end{verbatim}
\end{tscreen}

\index{C News!sys file@\file{sys} file|)}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{El fichero \prog{active}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.active}
\index{C News!fichero active@\file{active} file|(}
\index{C News!lista de los grupos actuales}

El fichero \file{active} est\'a situado en \newslib{} y lista todos los
grupos conocidos en su servidor, y los art\'{\i}culos disponibles actualmente.
Rara vez tendr\'a que tocarlo, pero, sin embargo, lo explicamos por
completitud.  Las entradas tiene la siguiente forma:

\begin{tscreen}
\var{gruponoticias} \var{alto} \var{bajo} \var{perm}
\end{tscreen}

\var{gruponoticias} es, por supuesto, el nombre del grupo.  \var{bajo} y
\var{alto} son los n\'umeros m\'as bajo y m\'as alto de los art\'{\i}culos
actualmente disponibles. Si no hay ninguno disponible en ese momento,
\var{bajo} es igual a \var{alto}+1.

\index{C-News!actualizar la marca baja de agua}
Al menos, eso es lo que el campo \var{bajo} pretende hacer. Sin
embargo, por razones de eficiencia, C-News no actualiza este campo.
Esto no ser\'{\i}a una gran perdida si no hubiera algunos lectores de
noticias que dependen de \'el.  Por ejemplo, \prog{trn} comprueba este
campo para ver si puede purgar cualquier art\'{\i}culo de su base
de datos de hilos. Para actualizar el campo \var{bajo}, tiene por lo
tanto que ejecutar regularmente el comando \prog{updatemin} (o, en una
versi\'on m\'as antigua de C-News, la macro \prog{upact}).

\var{perm} es un par\'ametro que detalla el tipo de acceso que los
usuarios tienen concedido en el grupo. Toma uno de los siguientes
valores:


\begin{dispitems}
  \ditem[\keyword{y}]
  Se permite a los usuarios enviar art\'{\i}culos a este grupo.
  
  \ditem[\keyword{n}]
  No est\'a permitido a los usuarios enviar art\'{\i}culos a este grupo.
  Sin embargo, el grupo puede todav\'{\i}a ser le\'{\i}do.
  
  \ditem[\keyword{x}]
  Este grupo ha sido deshabilitado localmente. Esto ocurre algunas veces
  cuando los administradores de noticias (o sus superiores) se ofenden
  por art\'{\i}culos enviados a ciertos grupos.
  
  Los art\'{\i}culos recibidos para estos grupos no son almacenados
  localmente aunque son reenviados a los servidores que los piden.
  
  \ditem[\keyword{m}]
  Esto denota un grupo moderado. Cuando un usuario intenta enviar un
  art\'{\i}culo a este grupo, un lector de noticias inteligente lo notificar\'a
  al usuario, y en su lugar enviar\'a el art\'{\i}culo al moderador.
  La direcci\'on del moderador se toma del fichero \file{moderators}
  de \newslib.
  
  \ditem[\keyword{=\var{real-group}}]
  Esto marca a \var{newsgroup} como un alias local para otro grupo, a
  saber \var{real-group}. Todos los art\'{\i}culos enviados a
  \var{gruponoticias} ser\'an redirigidos a \'el.
\end{dispitems}

En C-News, generalmente no tendr\'a que acceder directamente a este
fichero.  Los grupos deben ser a\~nadidos o borrados localmente usando
\prog{addgroup} y \prog{delgroup} (ver abajo en la
secci\'on~\ref{cnews.maint}).  Cuando se a\~naden o borran grupos
para la Usenet entera, esto se hace habitualmente por medio de
un mensaje de
control \keyword{newgroup} o \keyword{rmgroup}, respectivamente.
\emph{!`Nunca env\'{\i}e Ud. un mensaje de este tipo!} 
Para saber como crear un grupo de noticias, lea los mensajes enviados
mensualmente a \ngrp{news.announce.newusers}.


Un fichero estrechamente relacionado con \file{active} es
\file{active.times}. Cada vez que se crea un grupo, C-News registra
un mensaje en este fichero, conteniendo el nombre del grupo creado, la
fecha de creaci\'on, si fue hecho por un mensaje de control
\keyword{newgroup} o localmente, y qui\'en lo hizo. Esto es para facilitar
la vida a los lectores de noticias, quienes pueden notificar al usuario
los grupos reci\'en creados. Tambi\'en lo usa el
comando \keyword{NEWGROUPS} de NNTP.


\index{C News!active file@\file{active} file|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Procesado de art\'{\i}culos por lotes}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.procesador por lotes}
\index{C News!env\'{\i}o de noticias|(}
\index{C News!procesado por lotes|(}
\index{procesado por lotes!noticias|(}
\index{noticias!procesando por lotes}

Los lotes de noticias siguen un formato particular, el cual es el
mismo para
Bnews, C-News, e INN. Cada art\'{\i}culo est\'a precedido por una l\'{\i}nea como
esta:

\begin{tscreen}
 \#! rnews \var{cuenta}
\end{tscreen}

\noindent
donde \var{cuenta} es el numero de bytes en el art\'{\i}culo. Cuando se usa
la compresi\'on de lotes, el fichero resultante es comprimido como un
todo, y precedido por otra l\'{\i}nea, que indica el mensaje a ser usado
por la descompresi\'on. La herramienta de compresi\'on est\'andar es
\ngrp{compress}, la cual se indica con:

\begin{tscreen}
 \#! cunbatch
\end{tscreen}

Algunas veces, cuando hay que enviar los lotes usando un software de
correo que elimina el octavo bit de todos los datos, se puede proteger
un lote usando lo que se llama codificaci\'on C7;
estos lotes ser\'an marcados por \prog{c7unbatch}.

Cuando se le administra un lote a \prog{rnews} en el servidor remoto,
comprueba esas marcas y procesa el lote apropiadamente. Algunos
servidores tambi\'en usan otras herramientas de compresi\'on, como
\prog{gzip}, y en su lugar preceden sus ficheros comprimidos con
\prog{zunbatch}. C-News no reconoce cabeceras no est\'andares como esas;
Ud. tiene que modificar el c\'odigo fuente para soportarlas.

\index{sendbatches@\prog{sendbatches}}
\index{C News!sending news}
En C-News, el proceso por lotes de archivos lo realiza
\newsbin\file{/batch/sendbatches}, el cual recoje la lista de art\'{\i}culos
del fichero \var{site}\file{/togo}, y los pone en varios lotes de
noticias. Deber\'{\i}a ejecutarse una vez cada hora, o incluso m\'as
a menudo, dependiendo del volumen del tr\'afico.

Su operaci\'on es controlada por el fichero \file{batchparms} situado en
\newslib.  Este fichero describe el m\'aximo tama\~no de lote permitido
para cada servidor, el tipo de proceso por lotes y opcionalmente el
programa de compresi\'on a ser usado, y m\'etodo de transporte para
entregarlo al servidor
remoto. Ud. puede especificar los par\'ametros del proceso por lotes para
cada servidor, adem\'as de un conjunto de par\'ametros por
defecto para servidores no mencionados expl\'{\i}citamente.

Para llevar a cabo el proceso por lotes para un servidor espec\'{\i}fico,
se invoca como:


\begin{tscreen}
 \# su news -c "\newsbin/batch/sendbatches \var{site}\/"
\end{tscreen}


\index{C News!par\'ametros del proceso por lotes|(}
Cuando es invocado sin argumentos, \prog{sendbatches} maneja todas las
colas de lotes. La interpretaci\'on de ``todas'' depende de la presencia
de una entrada por defecto en \file{batchparms}. Si se encuentra una,
se comprueban todos los directorios de \newsspool\file{/out.going},
si no, recorre todas las entradas de \file{batchparms}.  Note que
\prog{sendbatches}, cuando explora el directorio \file{out.going},
toma s\'olo aquellos directorios que no contienen ning\'un punto o
arroba~(\keyword{@}) como nombre de servidor.


Cuando instale C-News, seguramente hallar\'a un fichero
\file{batchparms} en su distribuci\'on que contenga una entrada por
defecto razonable, as\'{\i} que es muy probable que no tenga que
tocar el fichero.  No obstante, describimos su formato por si acaso.
Cada l\'{\i}nea consta de seis campos, separados por espacios o
tabuladores:

\begin{tscreen}
\var{site} \var{size} \var{max} \var{batcher} \var{muncher} \var{transport}
\end{tscreen}

\medskip
El significado de estos campos es el siguiente:

%\begin{dispitems}
%\ditem[\var{site}]
\var{site} es el nombre del servidor al que se aplica la entrada.
 El fichero
\file{togo} para este servidor debe residir en \file{out.going/togo}
bajo la cola de las noticias. El nombre de servidor
\keyword{/default/} denota la entrada por defecto.


%\ditem[\var{size}]
\var{size} es el tama\~no m\'aximo de los lotes creados (antes
de la compresi\'on). Para aquellos art\'{\i}culos que son mayores que este
valor C-News hace una excepci\'on y los pone en un lote ellos solos.


%\ditem[\var{max}]
\var{max} es el m\'aximo n\'umero de lotes creados y programados para la
transferencia antes de que el proceso por lotes se pare para este
servidor particular. Esto es \'util en el caso de que el servidor remoto
no est\'e disponible durante un largo per\'{\i}odo de tiempo, porque previene
que
C-News ateste sus directorios de cola UUCP con millones de lotes de
noticias.

C-News determina el n\'umero de lotes que hay en cola usando el script
\prog{queulen} de \newsbin. La versi\'on \file{newspak} de Vince Skahan
deber\'{\i}a contener un gui\'on para UUCPs compatibles con BNU. Si usa una
clase diferente de directorios de cola, por ejemplo UUCP de Taylor,
tendr\'{\i}a que escribir el suyo propio.\footnote{ Si no le importa
  el numero de ficheros de cola (porque Ud. es la \'unica persona usando
  el ordenador, y no escribe art\'{\i}culos de megabytes), puede
  reemplazar los contenidos del gui\'on por una simple sentencia
  \prog{exit 0}.}


%\ditem[\var{batcher}]
\index{C News!yotengo/env\'{\i}ame}
El campo \var{batcher} contiene el comando usado para producir un lote
a partir de la lista de art\'{\i}culos del fichero \file{togo}. Para las fuentes
habituales, \'este es generalmente \prog{batcher}. Puede que se proporcionen otros empaquetadores para otros prop\'ositos. Por ejemplo, el protocolo ihave/sendme  requiere
que la lista de art\'{\i}culos sea convertida en mensajes de control ihave/sendme, los cuales se env\'{\i}an al grupo \ngrp{to.\var{site}}. Los comandos encargados de esto son \prog{batchih} y \prog{batchsm}.


%\ditem[\var{muncher}]
\index{C News!compressing batches}
El campo \var{muncher} especifica el
comando a usar para la compresi\'on de los lotes.  Generalmente, se usa \ngrp{compcun},
que es un gui\'on que produce un lote comprimido.\footnote{Tal como
se distribuye con C-News, \ngrp{compcun} usa \ngrp{compress} con la
  opci\'on 12~bit, ya que \'este es el m\'{\i}nimo com\'un denominador de la
  mayor\'{\i}a de servidores. Ud. puede hacer una copia de \'el, llam\'emosla
  \ngrp{compcun16}, y usar la compresi\'on 16~bit. De todas formas, la mejora
  no es muy impresionante.} Alternativamente, puede
proporcionar un \var{muncher} que use \prog{gzip}, digamos
\prog{gzipcun} (para ser claros: tiene que escribirlo Ud. mismo).
Debe asegurarse de que \prog{uncompress} en el servidor remoto est\'a parcheado para reconocer ficheros comprimidos con \prog{gzip}.

Si el servidor remoto no tiene un comando \prog{uncompress}, debe
especificar \prog{nocomp} lo que implica el no hacer ninguna
compresi\'on.


%\ditem[\var{transport}]
El \'ultimo campo, \var{transport}, describe el transporte a utilizar.
Hay disponibles varios comandos est\'andar para diferentes
transportes cuyos nombres empiezan por \prog{via}. \prog{sendbatches}
les pasa el nombre del servidor de destino en la l\'{\i}nea de comandos.  Si
la entrada \file{batchparms} no era \keyword{/default/}, el nombre del
servidor se obtiene del campo \var{site} suprimiendo cualquier cosa
despu\'es e incluyendo el primer punto o barra inclinada. Si la entrada
era \keyword{/default/}, se usan los nombres de directorio de
\file{out.going}.


\index{rnews@\prog{rnews}}
\index{uux@\prog{uux}}
\index{C News!UUCP}
Hay dos comandos que usan \prog{uux} para ejecutar \prog{rnews} en el
servidor remoto; \prog{viauux} y \prog{viauuxz}. El \'ultimo establece
el flag \option{-z} para (las versiones m\'as antiguas de) \prog{uux} para
evitar que devuelva mensajes de \'exito por cada art\'{\i}culo entrgado.
Otro comando, \prog{viamail}, manda lotes de art\'{\i}culos al usuario
\user{rnews} en el sistema remoto v\'{\i}a correo. Por supuesto, esto
requiere que el sistema remoto administre de alguna manera todo el
correo para \user{rnews} a su sistema local de noticias.  Para obtener una
lista completa de estos transportes, refi\'erase a la pagina del manual
\file{newsbatch(8)}.

%\end{dispitems}

Todos los comandos de los tres \'ultimos campos deben estar situados,
bien en \file{out.going/}\var{site} o bien en
\newsbin\file{/batch}.  La mayor\'{\i}a de ellos son scripts, de tal forma
que Ud. pueda confeccionar f\'acilmente nuevas herramientas para sus
necesidades personales. Son invocados con \var{tuber\'{\i}as}. Se administra
la lista de art\'{\i}culos al
\var{batcher} a trav\'es de la entrada est\'andar, quien produce el lote
en su salida est\'andar. Esta a su vez se \var{entuba}
en el \var{muncher}, y as\'{\i} sucesivamente.


Abajo se ofrece un fichero de ejemplo.

\begin{tscreen}
\begin{verbatim}
# fichero batchparms para la cervecera
# site        | size   |max    |batcher  |muncher    |transport
#-------------+--------+-------+---------+-----------+-----------
/default/       100000  22      batcher   compcun     viauux
swim             10000  10      batcher   nocomp      viauux
\end{verbatim}
\end{tscreen}

\index{C News!par\'ametros del proceso por lotes|)}
\index{C News!mandando noticias|)}
\index{C News!procesando por lotes|)}
\index{procesando por lotes!noticias|)}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Noticias caducadas}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.explist}
\index{C News!caducado|(}
En Bnews, la caducidad de las noticias sol\'{\i}a realizarse por medio de
un programa llamado \prog{expire}, el cual recib\'{\i}a como argumento una
lista de grupos de noticias, junto con una especificaci\'on del tiempo
despu\'es del cual los art\'{\i}culos caducaban. Para hacer que diferentes
jerarqu\'{\i}as caducaran en momentos distintos, Ud. ten\'{\i}a que escribir un
script que invocara a \prog{expire} para cada uno de ellos de forma
individual. C-News ofrece una soluci\'on m\'as conveniente a esto: en un
fichero llamado \file{explist}, Ud. puede especificar los grupos de
noticias y los intervalos de caducidad. Una vez al d\'{\i}a se suele
ejecutar desde \prog{cron} un comando llamado \prog{doexpire}, que
procesa todos los grupos de acuerdo a esta lista.


\index{C News!archivando}
\index{noticias!archivando art\'{\i}culos}
Ocasionalmente, Ud. puede querer mantener art\'{\i}culos de ciertos grupos
incluso despu\'es de que hayan caducado; por ejemplo, podr\'{\i}a querer
mantener los programas enviados a \ngrp{comp.sources.unix}. A esto se le
llama \emph{archivado}. \file{explist} le permite marcar grupos para
el archivado.

Una entrada en \file{explist} se parece a esto:

\begin{tscreen}
\var{grouplist} \var{perm} \var{times} \var{archive}
\end{tscreen}


%\begin{dispitems}
%\ditem[\var{grouplist}]
\var{grouplist} es una lista separada por comas de los grupos de
noticias a los que aplica la entrada. Se pueden especificar jerarqu\'{\i}as
completas indicando el prefijo del nombre del grupo, a\~nadiendo
opcionalmente \keyword{all}. Por ejemplo, para una indicar una entrada
que se aplique a todos los grupos de \ngrp{comp.os}, puede introducir
en \var{grouplist} o bien \ngrp{comp.os} o bien \ngrp{comp.os.all}.

Cuando se van a caducar las noticias de un grupo, se contrasta el
nombre del grupo con todas las entradas de \file{explist} en el orden
dado. La entrada empleada es la primera que concuerda. Por ejemplo, para
eliminar la mayor\'{\i}a de \ngrp{comp} despu\'es de cuatro d\'{\i}as, excepto
\ngrp{comp.os.linux.announce} que quiere mentener durante una
semana, debe simplemente tener una entrada para lo \'ultimo, que
especifique un periodo de caducidad de siete d\'{\i}as, seguida por una para
\ngrp{comp} que especifique cuatro d\'{\i}as.

%\ditem[\var{perm}]
El campo \var{perm} detalla si la entrada se aplica a grupos
moderados, no moderados, o a cualquier grupo. Debe tomar los valores
\keyword{m}, \keyword{u}, o \keyword{x}, lo que designa moderados, no
moderados, o cualquier tipo.

%\ditem[\var{times}]
El tercer campo, \var{times}, contiene usualmente un solo n\'umero.
\'Este es el n\'umero de d\'{\i}as despu\'es de los cuales caducar\'an los art\'{\i}culos si
no se les ha asignado una fecha de caducidad artificial en el campo
\mhdr{Expires:} de la cabecera del art\'{\i}culo. D\'ese cuenta de que este es
el n\'umero de d\'{\i}as contando desde la \emph{llegada} a su servidor,
no desde la fecha de emisi\'on.

Sin embargo, el campo \var{times} puede ser m\'as complejo que
eso. Puede ser una combinaci\'on de hasta tres n\'umeros, separados unos
de otros por un gui\'on. El primero designa el n\'umero de d\'{\i}as que tienen
que pasar antes de que el art\'{\i}culo sea considerado candidato para
estar caducado. Rara vez es \'util usar otro valor que no sea cero. El
segundo campo es el valor mencionado arriba, es decir, el n\'umero por
defecto de d\'{\i}as despu\'es de los cuales caducar\'a. El tercero es
el n\'umero de d\'{\i}as despu\'es de los cuales un art\'{\i}culo caducar\'a
incondicionalmente, sin reparar en si tiene un campo
\mhdr{Expires:} o no. Si s\'olo se indica el n\'umero de en medio, los otros
dos toman valores por defecto. Estos pueden especificarse usando la
entrada especial \keyword{/bounds/}, que se describe m\'as abajo.

%\ditem[\var{archive}]
El cuarto campo, \var{archive}, designa si el grupo de noticias tiene
que archivarse, y d\'onde. Si no se desea archivarlo, deber\'{\i}a 
usar un gui\'on.  De lo contrario, use un nombre de camino absoluto
(apuntando a un directorio), o una arroba (\keyword{@}). La arroba
designa el directorio de archivo por defecto, cuyo valor debe darse a
\prog{doexpire} usando el flag \option{-a} en la l\'{\i}nea de comandos. El
directorio de archivo debe ser propiedad de \user{news}. Cuando
\prog{doexpire} archiva un art\'{\i}culo de, digamos,
\ngrp{comp.sources.unix}, lo almacena en el directorio
\ngrp{comp/sources/unix} bajo el directorio de archivo, cre\'andolo si
no existe. Sin embargo, no se crear\'a el propio directorio de archivo.
%\end{dispitems}

Hay dos entradas especiales en su fichero \file{explist} de las que
depende \prog{doexpire}. En vez de una lista de grupos de noticias,
tienen las palabras clave \keyword{/bounds/} y \keyword{/expired/}. La
entrada \keyword{/bounds/} contiene los valores por defecto para los
tres valores del campo \var{times} descrito arriba.

El campo \keyword{/expired/} determina cu\'anto tiempo guardar\'a C-News
las l\'{\i}neas del fichero \file{history}. Esto es necesario porque
C-News no borrar\'a una l\'{\i}nea del fichero de historial una vez
que el (los)
art\'{\i}culo(s) correspondiente(s) hayan caducado, pero lo guardar\'a por si
acaso llega un duplicado tr\'as esa fecha. Si recibe las noticas de 
solo un servidor, puede mantener este valor peque\~no.
De lo contrario, un par de semanas es un valor aconsejable para las redes UUCP,
dependiendo de los retrasos que Ud. experimente con los art\'{\i}culos de
esos servidores.

A continuaci\'on se reproduce un fichero \file{explist} de ejemplo con unos 
intervalos de expiraci\'on bastante ajustador.

\begin{tscreen}
\begin{verbatim}
# Mantiene las lineas de historial durante dos semanas. Nadie consigue mas
# de tres meses
/expired/                       x       14      -
/bounds/                        x       0-1-90  -

# Los grupos que queremos mantener mas tiempo que el resto
comp.os.linux.announce          m       10      -
comp.os.linux                   x       5       -
alt.folklore.computers          u       10      -
rec.humor.oracle                m       10      -
soc.feminism                    m       10      -

# Archiva los grupos *.sources
comp.sources,alt.sources        x       5       @

# valores por defecto para los grupos de tecnologia
comp,sci                        x       7       -

# bastante para un fin de semana largo
misc,talk                       x       4       -

# desecha rapidamente lo inservible
junk                            x       1       -

# los mensajes de control tambien son de escaso interes
control                         x       1       -

# para el resto de ellos la entrada comodin
all                             x       2       -
\end{verbatim}
\end{tscreen}

\index{C-News!actualizar las marcas de agua bajas}
Hay un cierto n\'umero de problemas potenciales con la caducidad en C-News.
Uno es que su lector de noticias puede depender del
tercer campo del fichero \file{active}, el cual contiene el n\'umero del
art\'{\i}culo m\'as bajo disponible. Cuando C-News caduca los art\'{\i}culos no actualiza 
este campo. Si Ud.  necesita (o quiere) que este campo
represente la situaci\'on real, necesita ejecutar un programa llamado
\prog{updatemin} despu\'es de cada ejecuci\'on de
\prog{doexpire}.\footnote{ En versiones anteriores de C-News, esto era
  hecho por un un script llamado \prog{upact}.  }

\index{C News!fichero de historial@\file{history} file}
Segundo, C-News no caduca los art\'{\i}culos examinando el directorio de
los grupos de noticias, sino que simplemente comprueba en el fichero
\file{history} si el art\'{\i}culo debe caducar.\footnote {La fecha de llegada del
art\'{\i}culo se almacena en el campo de en medio de la l\'{\i}nea
de historia, dado en segundos desde el 1 de Enero de 1970.} Si su
fichero de historia consigue de alguna manera estar fuera de
sincronismo, sus art\'{\i}culos pueden permanecer en su disco duro para
siempre, porque C-News los ha olvidado literalmente.\footnote{ No se
\emph{por qu\'e} ocurre esto, a m\'{\i} me lo hace de vez en cuando.  } Puede
reparar esto usando el script \prog{addmissing} de
\newsbin\file{/maint}, el cual a\~nadir\'a los art\'{\i}culos perdidos al
fichero \file{history}, o \prog{mkhistory}, el cual reconstruye
el fichero desde cero. No olvide ser \user{news}
antes de invocarlo, o de lo contrario terminar\'a con un fichero
\file{history} imposible de leer por C-News.

\index{C News!caducando|)}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Ficheros diversos}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.misc}

Hay algunos ficheros que controlan el comportamiento de C-News, pero
no son esenciales para su funcionamiento. Todos ellos residen en
\newslib. Los describiremos brevemente.

\begin{dispitems}
  \ditem[\file{newsgroups}]
  \index{C News!lista de grupos actuales}
  Se trata de un fichero que acompa\~na al fichero \file{active} y
  contiene una lista de nombres de grupos de noticias, junto con una
  descripci\'on, en una sola l\'{\i}nea, de su tema principal. Este fichero
  se actualiza autom\'aticamente cuando C-News recibe un mensaje de
  control \keyword{checknews} (ver secci\'on~\ref{cnews.control}).

  \ditem[\file{localgroups}]
  Si Ud. tiene grupos locales de los que no quiere que C-News se queje
  cada vez que Ud. recibe un mensaje \keyword{checknews}, ponga sus
  nombres y una descripci\'on en este fichero, justo como aparecer\'{\i}an en
  el fichero \file{newsgroups}.
  
  \ditem[\file{mailpaths}]
  \index{C News!grupos moderados}
  Este fichero contiene la direcci\'on del moderador para cada grupo
  moderado. Cada l\'{\i}nea contiene el nombre del grupo, seguido por la
  direcci\'on de correo electr\'onico del moderador (separada por un
  tabulador).
  
  Hay dos entradas especiales que son proporcionadas por defecto.
  \'Estas son \keyword{backbone} e \keyword{internet}. Ambas
  proporcionan~--- en notaci\'on UUCP de signos de admiraci\'on~--- el
  camino al servidor principal m\'as cercano y el servidor que reconoce
  direcciones del estilo RFC~822 (\email{user@host}).  Las entradas
  por defecto son
  
  \begin{tscreen}
    internet\hspace{6ex}%s\\
    backbone\hspace{6ex}%s
  \end{tscreen}
  
  Ud. no tendr\'a que cambiar la entrada \keyword{internet} si no tiene
  instalado \prog{smail} o \prog{sendmail}, porque entienden
  direccionamiento RFC~822.
  
  La entrada \keyword{backbone} se usa cada vez que un usuario env\'{\i}a
  un mensaje a un grupo moderado cuyo moderador no est\'e listado
  explic\'{\i}tamente. Si el nombre del grupo de noticias es
  \ngrp{alt.sewer}, y la entrada \keyword{backbone} contiene
  \email{\var{path}!\%s}, C-News enviar\'a por correo el art\'{\i}culo a
  \email{\var{path}!alt-sewer}, esperando que la m\'aquina principal
  pueda reenviar el art\'{\i}culo. Para averiguar qu\'e camino usar, pregunte
  al administrador de noticias del servidor que le pasa las
  mismas. Como \'ultimo recurso, puede usar tambi\'en
  \email{uunet.uu.net!\%s}.
  
  \ditem[\file{distributions}]
  \index{C News!limitar una fuente}
  Este fichero no es realmente un fichero C-News, pero es usado por
  algunos lectores de noticias y \prog{nntpd}. Contiene la lista de
  distribuciones reconocida por su servidor, y una descripci\'on de su
  efecto (deseado).  Por ejemplo, la Cervecera Virtual tiene el
  siguiente fichero:
  
  %% (Como te enteraste, Fred? :)
  %% Otra vez, aqui no hay entorno verbatim
  \begin{tscreen}
    \def\ex#1{\hspace{#1ex}}
    world\ex{11}    cualquier lugar del mundo\\
    local\ex{11}    s\'olo local a este servidor\\
    nl\ex{15}       s\'olo Holanda\\
    mugnet\ex{10}   s\'olo MUGNET\\
    fr\ex{15}       s\'olo Francia\\
    de\ex{15}       s\'olo Alemania\\
    brewery\ex{9}   s\'olo Cerveceria Virtual
  \end{tscreen}

%% Estos los usa solamente postnews.
%% \ditem[\file{replyusepath}]
%% \ditem[\file{postdfltdist}]
%% \ditem[\file{postdfltgroup}]

  \ditem[\file{log}]
  \index{C News!archivos de registro}
  Este fichero contiene un registro de todas las actividades de
  C-News.  Se recorta regularmente ejecutando \prog{newsdaily}; las
  copias de ficheros de los registro antiguos se guardan en
  \file{log.o}, \file{log.oo}, etc.
  
  \ditem[\file{errlog}]
  \'Este es un registro de todos los mensajes de error creados por
  C-News.  \'Estos no incluyen art\'{\i}culos desechados debido a grupos
  incorrectos, etc.  De no estar vac\'{\i}o en el momento de ejecutar
  \prog{newsdaily}, ser\'a enviado por correo al administrador de las
  noticias (\user{usenet} por defecto) autom\'aticamente.
        
  \prog{newsdaily} se encarga de limpiar \file{errlog}. Las copias antiguas
  se guardan en \file{errlog.o} y compa\~n\'{\i}a.

  \ditem[\file{batchlog}]
  Este fichero registra todas las ejecuciones de \prog{sendbatches}.
  Normalmente no tiene inter\'es su contenido. Tambi\'en es atendido por
  \prog{newsdaily}.
  
  \ditem[\file{watchtime}]
  \'Este es un fichero vac\'{\i}o que se crea cada vez que se ejecuta
  \prog{newswatch}.

\end{dispitems}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Mensajes de Control}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.control}
\index{noticias!mensajes de control}

El protocolo de noticias Usenet reconoce art\'{\i}culos de una categor\'{\i}a
especial, los cuales provocan ciertas respuestas o acciones del
sistema. \'Estos son los llamados mensajes \emph{de control}. Se
reconocen por la presencia de un campo \mhdr{Control:} en la cabecera
del art\'{\i}culo, el cual contiene el nombre de la operaci\'on de control a
realizar. Existen varios tipos de ellas, todas ellas 
manejadas por guiones del int\'erprete de comandos situados en
\file{\newslib/ctl}.

La mayor\'{\i}a de \'estos realizar\'an su acci\'on autom\'aticamente en el momento
en que C-News procese el art\'{\i}culo, sin notificar al administrador de
noticias.  Por defecto, s\'olo los mensajes \keyword{checkgroups} ser\'an
entregados al administrador de noticias,\footnote{Hay una errata
divertida en el RFC~1036 (pag.12): ``Los implementadores y
administradores pueden elegir el permitir que los mensajes de control
se lleven a cabo autom\'aticamente, o encolarlos para su proceso
anual.''  } pero Ud. puede cambiar esto editando los scripts.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{El Mensaje \keyword{cancel}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.control.cancel}
\index{mensaje de control cancel@mensaje de control \keyword{cancel}}
\index{noticias!cancelar art\'{\i}culo}

El mensaje m\'as conocido es \keyword{cancel}, con el cual un usuario
puede cancelar un art\'{\i}culo enviado por \'el en otro momento. Esto borra
el art\'{\i}culo de los directorios de cola, si existe. El mensaje
\keyword{cancel} se reenv\'{\i}a a todos los servidores que reciben
noticias de los grupos afectados, sin reparar en si el art\'{\i}culo ha
sido visto ya o no. Esto es para tener el cuenta la posibilidad de que
el art\'{\i}culo original se haya retrasado sobre el mensaje de
cancelaci\'on. Algunos sistemas de noticias permiten a los usuarios
cancelar los mensajes de otras personas. Por supuesto esto es algo que
no se deber\'{\i}a hacer.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\keyword{newgroup} y \keyword{rmgroup}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.control.addgroup}
\label{cnews.control.rmgroup}
\index{mensaje de control newgroup@mensaje de control \keyword{newgroup}}
\index{mensaje de control rmgroup@mensaje de control \keyword{rmgroup}}
\index{noticias!a\~nadir un grupo nuevo}
\index{noticias!borrar un grupo antiguo}

Dos mensajes que se ocupan de la creaci\'on y borrado de grupos de
noticias son los mensajes \keyword{newgroup} y \keyword{rmgroup}. Los
grupos de noticias bajo las jerarqu\'{\i}as ``usuales'' s\'olo puede ser
creados despu\'es de que se haya mantenido una discusi\'on y voto entre
los lectores de Usenet. Las reglas aplicadas a la jerarqu\'{\i}a \ngrp{alt}
permiten algo similar a la anarqu\'{\i}a. Para m\'as informaci\'on, ver los
mensajes regulares de \ngrp{news.announce.newusers} y
\ngrp{news.announce.newgroups}.  Nunca mande un mensaje
\keyword{newgroup} o \keyword{rmgroup} usted mismo a menos que sepa
con seguridad que tiene permiso para hacerlo.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{El Mensaje \keyword{checkgroups}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.control.checkgroups}
\index{mensaje de control checkgroups@mensaje de control \keyword{checkgroups}}
\index{C News!actualizar el fichero activo@actualizar el fichero \file{active}}
\index{noticias!actualizar el fichero activo@actualizar el fichero \file{active}}

Los mensajes \keyword{checkgroups} son mandados por los
administradores de noticias para hacer que todos los servidores de una
red sincronicen sus ficheros \file{active} con la realidad de
Usenet. Por ejemplo, los proveedores de servicio de Internet deber\'{\i}an
mandar tal mensaje a los servidores de sus clientes.  Una vez al mes,
el moderador del grupo \ngrp{comp.announce.newgroups} env\'{\i}a el mensaje
``oficial'' \keyword{checkgroups} para las principales jerarqu\'{\i}as.
Sin embargo, se env\'{\i}a como un art\'{\i}culo ordinario, no como un mensaje
de control. Para realizar la operaci\'on \keyword{checkgroups}, salve
este art\'{\i}culo en un fichero, digamos \file{/tmp/check}, borre todo
hasta el principio del mismo mensaje de control, y env\'{\i}elo al programa
\keyword{checkgroups} usando el siguiente comando:

\begin{tscreen}
\# su news -c "\newsbin/ctl/checkgroups" < /tmp/check
\end{tscreen}

Esto actualizar\'a su fichero \file{newsgroups}, a\~nadiendo los grupos
listados en \file{localgroups}. El antiguo fichero \file{newsgroups}
ser\'a movido a \file{newsgroups.bak}. Note que rara vez funciona el
enviar el mensaje localmente, porque \prog{inews} rechaza aceptar un
art\'{\i}culo tan grande.

Si C-News encuentra desigualdades entre la lista \keyword{checkgroups}
y el fichero \file{active}, producir\'a una lista de comandos que
actualizar\'{\i}a su servidor, y lo enviar\'a por correo al administrador de
noticias. T\'{\i}picamente la salida se parece a esto:

\begin{tscreen}
\begin{verbatim}
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/bin/maint/delgroup alt.ascii-art
         /usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org
         /usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics
         /usr/lib/news/bin/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

\end{verbatim}
\end{tscreen}

Cuando reciba un mensaje como \'este de su sistema de noticias, no lo
crea ciegamente. Dependiendo de qui\'en envi\'o el mensaje
\keyword{checkgroups}, puede que carezca de unos pocos grupos e
incluso de jerarqu\'{\i}as enteras; por lo tanto deber\'{\i}a tener cuidado al
borrar cualquier grupo. Si Ud. encuentra grupos listados como
no presentes que quiera tener en su servidor, tiene que a\~nadirlos
usando la herramienta \prog{addgroup}. Salve la lista de grupos
que le faltan en un fichero y p\'aseselo al siguiente gui\'on:

\begin{tscreen}
\begin{verbatim}
#!/bin/sh
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/bin/maint/addgroup $group $mod
done
\end{verbatim}
\end{tscreen}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\keyword{sendsys}, \keyword{version}, y \keyword{senduuname}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.control.sendsys}
\label{cnews.control.version}
\label{cnews.control.uuname}
\index{mensaje de control senduuname@mensaje de control \keyword{checkgroups}}
\index{mensaje de control sendsys@mensaje de control \keyword{checkgroups}}
\index{mensaje de control version@mensaje de control \keyword{checkgroups}}

Finalmente, hay tres mensajes que pueden usarse para averiguar la
topolog\'{\i}a de la red. \'Estos son \keyword{sendsys}, \keyword{version}, y
\keyword{senduuname}. Respectivamente, hacen que C-News devuelva al
remitente el fichero \file{sys}, una cadena con la versi\'on del
software, y la salida de \prog{uuname(1)}. C-News es muy lac\'onica con
respecto a los mensajes \keyword{version}; devuelve una simple ``C'',
sin adornos.

Insistimos de nuevo, Ud. \emph{nunca} deber\'{\i}a distribuir tal mensaje,
a menos que est\'e seguro de que no puede dejar su red (regional).  Las
respuestas a los mensajes \keyword{sendsys} pueden hacer caer
r\'apidamente una red UUCP.\footnote{Yo tampoco intentar\'{\i}a esto en
Internet.  }


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{C-News en un Entorno NFS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{cnews.nfs}
\index{configurando!C News en una LAN}
\index{C News!LAN}
\index{LAN!noticias}

Una manera simple de distribuir noticias en una red local es guardar
todas las noticias en un nodo central, y exportar los directorios
relevantes v\'{\i}a NFS, de manera que los lectores de noticias puedan
examinar los art\'{\i}culos directamente.  La ventaja de este m\'etodo sobre
NNTP es que la sobrecarga implicada en recuperar y enhebrar art\'{\i}culos
es significativamente m\'as baja. Por otra parte, NNTP gana en una red
heterog\'enea donde el equipamiento var\'{\i}a mucho entre nodos, o donde los
usuarios no tienen cuentas equivalentes en la m\'aquina servidora.

Cuando se usa NFS, los art\'{\i}culos enviados al nodo local tienen que ser
reenviados a la m\'aquina central, porque de otro modo el acceso a los
ficheros administrativos expondr\'{\i}a al sistema a \var{condiciones de
carrera} y dejar\'{\i}an los ficheros inconsistentes. Tambi\'en Ud. podr\'{\i}a
querer proteger su \'area de cola de noticias export\'andola como
solo-lectura, lo cual requiere tambi\'en el reenv\'{\i}o a la m\'aquina
central.

C-News maneja esto transparentemente. Cuando env\'{\i}a un art\'{\i}culo, su
lector de noticias normalmente llamar\'a a \prog{inews} para inyectar el
art\'{\i}culo en el sistema de noticias. Este comando ejecuta algunas
comprobaciones sobre el art\'{\i}culo, completa la cabecera, y comprueba el
fichero \file{server} en \newslib. Si este fichero existe y contiene
un nombre de nodo diferente del nombre del sistema local, se invoca 
\prog{inews} en ese servidor remoto v\'{\i}a \prog{rsh}.  Puesto que el
gui\'on \prog{inews} usa comandos binarios y ficheros de apoyo de
C-News, Ud. tiene que tener C-News instalado localmente, o montar el
software de noticias desde el servidor.

Para que la invocaci\'on de \prog{rsh} funcione correctamente, cada
usuario debe tener una cuenta equivalente en el sistema del servidor,
esto es, una a la que pueda acceder sin necesitar contrase\~na.

Aseg\'urese de que el nombre del sistema indicado en \file{server}
coincida literalmente con la salida del comando \prog{hostname(1)} en
la m\'aquina servidora, si no C-News entrar\'a en un bucle infinito cuando
intente entregar el art\'{\i}culo.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Herramientas y Tareas de Mantenimiento}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\namedlabel{cnews.maint}{Herramientas y Tareas de Mantenimiento}

A pesar de la complejidad de C-News, la vida de un administrador de
noticias puede ser bastante f\'acil, porque C-News proporciona una
amplia variedad de herramientas de mantenimiento.  Es deseable que
algunos de \'estos sean ejecutados regularmente desde \prog{cron}, como
\prog{newsdaily}.  El uso de estos programas reduce dr\'asticamente los
requisitos diarios de cuidado y administraci\'on de su instalaci\'on de
C-News.

A menos que se indique lo contrario, estos comandos est\'an situados en
\newsbin\file{/maint}.  Note que Ud. debe ser el usuario \user{news}
antes de invocar estos comandos. Ejecut\'andolos como super-usuario
puede volver estos ficheros inaccesibles a C-News.

\begin{dispitems}
  \ditem[\prog{newsdaily}]
  El nombre ya lo dice: ejecutar esto una vez al d\'{\i}a. Es un gui\'on
  importante que le ayuda a mantener los ficheros de registro
  peque\~nos, conservando copias de cada todos ellos de las tres \'ultimas
  ejecuciones. Tambi\'en intenta detectar cualquier anomal\'{\i}a, como lotes
  atascados en los directorios de entrada y salida, env\'{\i}os a grupos de
  noticias moderados o desconocidos, etc.  Los mensajes de error
  resultantes ser\'an enviados por correo al administrador de noticias.
  
  \ditem[\prog{newswatch}]
  Se trata de un script que deber\'{\i}a ejecutarse regularmente para buscar
  anomal\'{\i}as en el sistema de noticias, una vez cada hora m\'as o menos.
  Est\'a destinado a detectar problemas que tendr\'an efectos inmediatos
  en la operatibilidad de su sistema de noticias y enviar un informe
  de problemas al administrador de noticias. Las cosas comprobadas
  incluyen ficheros de bloqueo pasados que no fueron borrados, lotes
  de entrada desatendidos y la falta de espacio de disco.
  
  \ditem[\prog{addgroup}]
  A\~nade un grupo localmente a su servidor. La invocaci\'on adecuada es
  
  \begin{tscreen}
    addgroup \var{groupname} {y|n|m|=\var{realgroup}}
  \end{tscreen}
  
  El segundo argumento tiene el mismo significado que el modificador
  del fichero \file{active}, significando que cualquiera puede enviar
  un art\'{\i}culo al grupo (\keyword{y}), que nadie puede enviar
  (\keyword{n}), que es moderado (\keyword{m}), o que es un alias para
  otro grupo (\keyword{=\var{realgroup}}).
  
  Ud. podr\'{\i}a querer usar \prog{addgroup} cuando los primeros art\'{\i}culos
  de un grupo reci\'en creado lleguen antes que el mensaje de control
  \keyword{newgroup} destinado a crearlo.
  
  \ditem[\prog{delgroup}]
  Le permite borrar localmente un grupo. Inv\'oquelo como
  
  \begin{tscreen}
    delgroup \var{groupname}
  \end{tscreen}
  
  Todav\'{\i}a tiene que borrar los art\'{\i}culos que permanecen el directorio
  de cola del grupo de noticias. Aunque se puede dejar esta tarea al
  proceso natural de expiraci\'on de los art\'{\i}culos.
  
  \ditem[\prog{addmissing}]
  A\~nade art\'{\i}culos perdidos al fichero \file{historial}. Ejecute este
  gui\'on cuando haya art\'{\i}culos que parezcan quedarse para
  siempre.\footnote{?`Alguna vez se ha preguntado c\'omo librarse del
  art\'{\i}culo ``!`Ayuda! !`!`!`No puedo hacer que las X11 funcionen con
  0.97.2!!!''?  }
  
  \ditem[\prog{newsboot}]
  Este gui\'on se deber\'{\i}a ejecutar cuando arranca el sistema.  Elimina
  cualquier fichero de bloqueo que se dej\'o atr\'as cuando se mataron los
  procesos al apagar, y cierra y ejecuta cualquier lote dejado por
  las conexiones NNTP que se cerraron cuando se apag\'o el sistema.
  
  \ditem[\prog{newsrunning}]
  \'Este reside en \newsbin\file{/input}, y puede ser usado para
  deshabilitar el desempaquetado de los lotes de noticias entrantes,
  por ejemplo durante las horas de trabajo. Ud. puede desconectar el
  desempaquetado de lotes invocando
  
  \begin{tscreen}
    \newsbin/input/newsrunning off
  \end{tscreen}
  
  Se conecta usando \keyword{on} en vez de \keyword{off}.

\end{dispitems}

\index{configurando!C News|)}
\index{configurando!noticias Usenet|)}
\index{C News|)}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
