Los artículos pueden ser suministrados a C-News de varias formas. Cuando un usuario envía un artículo, el lector de noticias normalmente lo pasa al programa inews, que completa la información de la cabecera. Las noticias que llegan al servidor, ya sea un solo artículo o un lote de ellos, son pasadas por el programa rnews, que las guardará en el directorio /var/spool/news/in.coming, desde donde más tarde serán recogidas por newsrun. Sin embargo, con cualquiera de estas dos técnicas el artículo se pasará finalmente por el programa newsrun.
La orden relaynews comprueba si un artículo ya se encuentra en el servidor buscando el ID del mensaje en el fichero history. Los artículos duplicados son eliminados. Entonces relaynews mira la línea de la cabecera Newsgroups: para saber si el servidor local solicita artículos de cualquiera de estos grupos. Si es así, y el grupo de noticias aparece en el fichero active, relaynews intenta almacenar el articulo en su directorio correspondiente en el área de cola de noticias. Si el directorio no existe, es creado. El ID del mensaje que tiene el artículo es registrado en el fichero history. Si no, relaynews elimina el artículo.
Algunas veces relaynews falla al guardar un artículo entrante porque el grupo al que ha sido enviado no está listado en su fichero active. En este caso, el artículo se mueve al grupo junk.[1] relaynews también busca artículos sin referenciar y los rechaza. Los lotes entrantes que fallan por cualquier razón se mueven a /var/spool/news/in.coming/bad, y se registra un mensaje de error.
Después de esto, el artículo se transmite a todos los otros servidores que soliciten noticias de estos grupos, usando el transporte especificado para cada servidor . Para asegurarse de que un artículo no es enviado a un servidor que ya lo tiene, cada servidor de destino se compara con el campo Path: de la cabecera, que contiene la lista de servidores por los que el artículo ha pasado, escrito al estilo UUCP bang-path source-routing descrito en Capítulo 17. Si el nombre del servidor destinatario no aparece en esta lista, el articulo se le envía.
C-News se usa comúnmente para transmitir noticias entre servidores UUCP, aunque es también posible usarlo bajo un entorno NNTP. Para entregar noticias a un servidor remoto UUCP, tanto un solo artículo como lotes enteros, se usa uux para ejecutar el programa rnews en un servidor remoto y entregarle el artículo o lote por su entrada estándar. Consulte en Capítulo 16 para más información sobre el UUCP.
Proceso por lotes es un término usado para describir el envío de grandes cantidades de artículos individuales en una sola transmisión. Cuando el procesamiento por lotes se activa en un servidor, C-News no envía ningún artículo entrante inmediatamente; en vez de eso, añade su localización a un fichero, normalmente out.going/site/togo. Periódicamente, el programa cron ejecuta un programa desde una entrada del crontab, que lee este fichero y mete todos los artículos listados en uno o más ficheros, opcionalmente comprimiéndolos y enviándolos a rnews en el servidor remoto. [2]
Figura 21-1 muestra las noticias fluyendo a través de relaynews. Los artículos deben ser transmitidos al servidor local (indicado por ME), a un servidor llamado ponderosa vía email, y a un servidor llamado moria, para el cual el proceso por lotes está activado.
[1] | Debe haber una diferencia entre los grupos que existen en su servidor y aquellos que su servidor está preparado para recibir. Por ejemplo, la lista de subscripción puede especificar comp.all, que debe enviar todos los grupos por debajo de comp, pero en nuestro sitio podemos no tener listados todos los grupos de esa jerarquía en el fichero active. Los artículos enviados a esos grupos serán movidos a junk. |
[2] | Recuerde que debe ser el crontab de noticias; los permisos de ficheros no serán cambiados. |