RPOST(1)

NOMBRE
rpost - envía un artículo a un servidor de noticias NNTP

SINOPSIS
rpost [ nodo ] [ @archivo ] [ -s | -S archivo ] [ -e | -E archivo ] [ -b archivo_lotes ] [ -r archivo_rnews ruta_rnews ] [ -p prefijo ] [ -Q ] [ -d ] [ -U ID_usuario ] [ -P contraseña ] [ -M ] [ -N puerto ] [ -l archivo_de_frases ] [ -D ] [ -T tiempo_tope ] [ -u ] [ -n ]

[ -F perl_file ] [ -i ] [ -z ] [ -f filtro $$o=<outfile> filtro_arg1 ... ]

DESCRIPCIÓN
Rpost publicará uno o más artículos, definidos en nombre de host. Si no se define el nombre de equipo, rpost utilizará la variable de entorno NNTPSERVER. El nombre del equipo puede incluir opcionalmente el número de puerto, en el formato Host:Puerto Si se utiliza este formato, no se tendrá en cuenta ningún puerto definido mediante la opción -N.

Opciones generales

@archivo

Esta opción hace que rpost lea otras opciones del archivo indicado, además de las de la línea de órdenes.

-D Esta opción hace que rpost envíe varios mensajes de debug a "debug.suck", para uso básicamente del programador.

-e|-E archivo

Estas opciones enviarán todos los mensajes de error (normalmente mostrados por la salida de error estándar, stderr) a un archivo distinto. La opción en minúscula, -e, enviará los mensajes de error al archivo definido en suck_config.h y compilado en suck. El valor por defecto es suck.errorlog. La opción en mayúscula, -E, necesita un nombre de archivo. Todos los mensajes de error serán enviados a dicho archivo.

-i

Esta opción hace que rpost ignore el 201 (no se permite publicar) del mensaje de bienvenida e intente publicar de todos modos. Algunos servidores de noticias (inn-2.3.1) envían 201 no se permite publicación cuando usan los comandos AUTHINFO para verificar el permiso para publicar.

-l archivo_de_frases

Esta opción hace que rpost cargue un archivo de frases alternativas, en vez de usar los mensajes imbuidos. Esto le permite a Vd. hacer que rpost muestre sus mensajes en otro idioma o permite personalizar los mensajes sin tener que recompilar. Para más detalles vea "FRASES EN DIVERSOS LENGUAJES" en suck(1).

-M

Esta opción hace que rpost envíe una orden de "modo de lectura" al servidor remoto. Si Vd. obtiene un mensaje de orden inválida inmediatamente después del anuncio de bienvenida, pruebe esta opción.

-n

Esta opción hace que rpost muestre el nombre del archivo mientras se está subiendo.

-N puerto

Esta opción hace que rpost use un puerto NNRP alternativo cuando se conecta al nodo, en lugar del puerto 119, que es el que se toma por defecto.

-s|-S archivo

Estas opciones enviarán todos los mensajes de estado (normalmente enviados a la salida estándar, stdout) a un archivo distinto. La opción en minúscula, -s, enviará los mensajes al archivo definido en suck_config.h y compilado en suck. El valor por defecto es /dev/null, esto es: no se muestran los mensajes de estado. La opción en mayúscula, -S, necesita un nombre de archivo. Todos los mensajes de estado serán enviados a dicho archivo.

-T Esta opción reemplaza el valor precompilado de TIMEOUT, tiempo tope de conexión. Es el tiempo que rpost está esperando datos del host remoto antes de sobrepasar el tope y abortarse.

-u Esta opción hace que rpost envíe al servidor remoto una orden AUTHINFO USER nada más conectarse, en lugar de esperar la petición de autorización. Deberá además usar las opciones -U y -P cuando use ésta.

-U usuario -P clave

Estas dos opciones le permiten a Vd. especificar un usuario y una clave de acceso si su servidor NNTP las solicita.

-Q

Esta opción le permite especificar el ID de usuario y la contraseña a través de las variables de entorno 'NNTP_US' y 'NNTP_PASS' en lugar de hacerlo a través de la línea de órdenes. Esto evita un posible problema de seguridad ya que alguien que ejecute la orden ps podrá ver su nombre de usuario y contraseña.

La opción -z hace que se use SSL para comunicarse con los servidores remotos, siempre que rpost haya sido compilado con soporte para SSL.

MODO STDIN
rpost

rpost nodo

rpost lee un artículo en su entrada estándar y lo envía al servidor NNTP. El artículo debe contener una cabecera con al menos dos líneas llamadas Newsgroups: y Subject: y un cuerpo (el artículo propiamente dicho). La cabecera y el cuerpo deben estar separados por un carácter de cambio de línea. Rpost no hace ningún cambio en el artículo.

Rpost usa la orden POST para enviar el artículo, tal y como haría un programa lector de noticias. Esto es práctico cuando se usa SLIP o PPP pues muchos proveedores de servicios de internet no permiten otro método de enviar artículos (como nntpsend o innxmit).

MODO BATCH

rpost nombre de equipo -b archivo por lotes -p prefijo -d

Este modo por lotes le permite dar a rpost una lista de artículos y publicarlos todos de vez.

-b archivo_batch

Una lista de los artículos a enviar. Este parámentro es NECESARIO. Este archivo contiene una línea por cada artículo, siendo cada una de ellas el camino+nombre del archivo que contiene al artículo. Por ejemplo:

    -b /usr/spool/news/out.going/pixi

Si hay problemas al enviar el artículo se creará un archivo de fallos. Se llamará "archivo_batch".fail y contendrá la línea del archivo_batch de cada uno de los artículos que no sean enviados correctamente. Este archivo puede ser usado para volver a enviar los mensajes usando rpost. NOTA: los mensajes duplicados no son considerados como erróneos a efectos de ser incluidos en el archivo "fail".

-d

Si se envían los artículos correctamente, esta opción hace que rpost borre
 el archivo especificado con la opción -b.

-p prefijo

Este parámetro debe ser especificado si el archivo_batch contiene solo una parte del camnino de los artículos, en lugar del camino completo. Esto es útil cuando archivo batch es generado por otro programa. Por ejemplo, Inn lista los artículos en su directorio out.going pero relativos a su directorio base: /var/spool/news. En ese caso basta usar:

     -p /usr/spool/news

MODO RNEWS
rpost equipo -r archivo_rnews ruta_rnews

Esta opción permite el empleo de archivos generados por rnews para postear. Requiere dos parámetros.

rnews_file: este es el nombre base de los archivos rnews. Si tiene sus archivos rnews llamados lote1, lote2, etc., entonces este argumento sería 'lote'.

rnews_path: esta es la ruta a la ubicación de los archivos rnews.
    -r batch /usr/tmp/rnews

-d

Si se envían los artículos correctamente, esta opción hace que rpost borreeste archivo rnews en concreto.

MODOS DE FILTRADO
-f filtro $$o=<archivo_salida> arg1_filtro arg2_filtro ...

En muchos casos, cada artículo deberá retocarse antes de que el NNTP remoto lo acepte. Esta opción, y la opción de filtro Perl incorporado a continuación, le permitirán hacerlo. Estos filtros no funcionan en el modo STDIN, sino en los modos por lotes y rnews de arriba. Tenga en cuenta que la opción -f .... debe ser la ÚLTIMA opción, ya que todo lo que sigue se pasa al filtro, excepto lo que se indica a continuación. Hay tres parámetros requeridos con esto:

$$o=<archivo_salida>    - <archivo_salida> es el nombre del
artículo generado por el filtro y que será enviado al servidor NNTP remoto. NO se pasa al programa de filtro. Puede ser especificado en cualquier lugar de la línea DESPUÉS del argumento -f, bien antes o después del nombre del filtro.

filtro - nombre del programa a ejecutar. Cualquier cosa que siga al filtro, EXCEPTO $$o, será pasado como argumento al filtro.

arg1 - El primer argumento a su programa/script de filtro. Muy posiblemente sea $$i, el cual será reemplazado por rpost con el nombre del artículo que va a ser filtrado.

arg2 ... - cualesquiera argumentos adicionales que sean necesarios.

Un ejemplo para clarificar esto un poco. A algunos servidores NNTP no les gusta recibir artículos con el campo NNTP-Posting-Host relleno. Cree un pequeno script para borrar esto del artículo:

-miscript--------------------------------------------

#!/bin/sh

sed -e "/^NNTP-Posting-Host/d" $1 > $2

-end miscript--------------------------------------

Y ejecute rpost con algo como esto:
    rpost localhost -b /usr/spool/news/out.going/pixi -f miscript \$\$o=/tmp/MSG_FILTRADO \$\$i /tmp/MSG_FILTRADO

Entonces, antes de que cada artículo sea enviado, se llamará a miscript de este modo:
    miscript archivo_con_mensaje /tmp/MSG_FILTRADO

Una vez finalizado myscr, rpost carga el artículo ya retocado, almacenado en /tmp/FILTERED_MSG, al servidor NNTP remoto.

NOTA:
$$o y $$i tienen que ir precedidos por símbolos de escape, como pueden ser barras de división invertidas o bien entre comillas simples para evitar que la shell los interprete como variables y los expanda. ¡ Si no se tiene esa precaución puede ocurrir que rpost no envíe mensajes !

-F perlfilter

Esta opción le permite utilizar un filtro Perl integrado para filtrar sus artículos. Para utilizar esto, debe editar el Makefile y definir las distintas opciones de PERL_. Tiene dos ventajas sobre la opción -f anterior. Debido a que está integrado en Perl, no se realizan forks ni execls (), por lo que debería ser más rápido. Además, no necesita preocuparse por los argumentos del programa ni por el escape $$, etc., como se indicó anteriormente.

Cuando se inicie Rpost, se cargará el archivo perlfilter designado y lo analizará en busca de errores de sintaxis. Luego, para cada artículo que se cargue, rpost invocará la subrutina 'perl_rpost', dentro del archivo perlfilter. Consulte sample/put.news.pl para ver un ejemplo completo. Hay tres puntos clave que deben tenerse en cuenta al crear un filtro.

    1. El archivo perlfilter debe contener la línea 'package Embed::Persistant;',para que las variables en el archivo perlfilter no entren en conflicto con las variables rpost, y la subrutina debe llamarse 'perl_rpost'. Esto puede modificarse editando la definición PERL_RPOST_SUB en el encabezado suck_config.h.

    2. La subrutina perl_rpost recibe el nombre del archivo de entrada como único argumento, y debe retornar la ruta completa a la ubicación del artículo filtrado como una sola cadena escalar (return $outfile).

    3. La subrutina debe cerrar expresamente el archivo de salida (que contiene el argumento filtrado) antes de que retorne. Esto es porque perl sólo cerrará automáticamente cuando el programa esté terminado (en nuestro caso cuando rpost finalice), o cuando se vuelva a usar la gestión del archivo (la próxima vez que se invoque la subrutina). Si el cierre no está hecho, se tendrá un archivo de 0 bytes cuando intente publicar el artículo resultando en un error.

PRECAUCIÓN:

Tenga mucho cuidado con lo que el filtro borra del artículo. Borrar una línea equivocada puede tener efectos perniciosos más tarde. Por ejemplo, no borre la línea NSG-ID, pues en ese caso puede ocurrir que un mismo mensaje sea enviado varias veces, dependiendo de la configuración de los servidores local y remoto.

ARCHIVO DE ARGUMENTOS DE RPOST

Si Vd. especifica un @archivo en la línea de órdenes, rpost leerá ese archivo y buscará en él argumentos que serán pasados a rpost. Puede especificar los mismos argumentos que en la línea de órdenes. Los argumentos pueden aparecer en la misma línea o distribuidos en varias líneas. Puede incluir comentarios. Los comentarios empiezan por '#' y continúan hasta el final de la línea. Los argumentos de la línea de orden prevalecen sobre los del archivo. Una ventaja de usar un archivo de parámetros en lugar de la línea de órdenes es que no es necesario incluir símbolos de escape para prevenir la expansión de los caracteres especiales como $.

    # Ejemplo de archivo de parámetros
    -b batch # opción de archivar en un lote batch
    -M    # usar el modo de lectura

VALORES DEVUELTOS
Rpost devuelve los siguientes valores:

    0 = correcto, sin errores
    1 = error enviando un artículo
    2 = imposible llevar a cabo un proceso de autorización NNTP con servidor remoto
    3 = respuesta inesperada en el curso de una autorización NNTP.
    -1 = otro error fatal.

VÉASE TAMBIÉN
suck(1), testhost(1), lpost(1).

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Claudio S. Suárez <csuarez@ctv.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.