NOMBRE¶
suck - Obtiene un pequeño grupo de mensajes de un servidor NNTP, evitando
los comandos NEWNEWS
SINOPSIS¶
suck [ nodo ] [
@archivo ] [
-V ] [
-K ] [
-L[SL] ] [
-H ] [
-d[tmd] directorio ] [
-s | -S archivo ] [
-e | -E archivo ] [
-a ] [
-m ] [
-b[irlf] archivo_batch ] [
-r
tamaño ] [
-p extensión ] [
-U usuario ] [
-P
clave ] [
-c ] [
-M ] [
-N puerto ] [
-W
tiempo_de_pausa núm_mensajes_pausa ] [
-w tiempo_de_pausa
núm_mensajes_pausa ] [
-l archivo_de_frases ] [
-D ] [
-R ] [
-q ] [
-C artículos ] [
-k ] [
-A ] [
-AL archivo_active ] [
-hl localhost ] [
-bp ] [
-T tiempo_tope ] [
-n ] [
-u ] [
-z
] [
-x ] [
-B ]
Opciones válidas en todos los modos
-V
Esta opción hace que suck escriba el número de versión y
finalice.
-s | -S archivo
Estas opciones enviarán todos los mensajes de estado (que normamente van a
la salida estándar) a un archivo alternativo. Cuando la opción es la
minúscula, -s, enviarán los mensajes de estado al archivo por
defecto en definido en tiempo de compilación en suck_config.h. Por
defecto se toma /dev/null, o sea: no se escribirán mensajes de estado. La
mayúscula, -S, requiere un nombre de archivo. Todos los mensajes de
estado serán enviados a este archivo.
-e | -E archivo
Estas opciones enviarán todos los mensajes de error (normalmente escritos
en la salida de error estándar) a un archivo alternativo. La versión
en minúscula, -e enviará los mensajes de error al archivo por
defecto definido en tiempo de compilación en suck_config.h. Por defecto
se toma suck.errlog. La mayúscula, -E, requiere un nombre de archivo.
Todos los mensajes de error serán enviados a este archivo.
-a
Esta opción obliga a suck a hacer siempre un archivo batch de los articulos
obtenidos, incluso si el proceso se aborta por alguna razón. Sin esta
opción, suck sólo crea el batch de los artículos si finaliza
correctamente o si es cancelado por una señal (véase más
adelante).
-N puerto
Esta opción hace que suck use un puerto NNRP alternativo cuando se conecta
al nodo, en lugar del puerto 119, que es el que se toma por defecto.
@archivo
Esta opción hace que suck lea otras opciones del archivo indicado,
además de las de la línea de comando.
-dt directorio
-dm directorio
-dd directorio
Especifica la colocación de varios archivos usados por suck.
-dt directorio = directorio de los archivos temporales creados por suck
(suck.newsrc, suck.sort, suck.restart, suck.killlog, suck.post).
-dm directorio = diretorio para guardar los artículos creados en el modo
Multiarchivo o en el modo batch. NO haga coincidir este directorio con los
usados en las opciones -dt o -d o perderá todos sus archivos de
configuración.
-dd directorio = directorio de archivos de datos usados por suck (sucknewsrc
suckkillfile suckothermsgs active-ignore)
-p extensión
Esta extensión se añade a todos los archivos, de modo que Vd. puede
tener varios nodos de toma de artículos. Por ejemplo, si Vd. especifica
-p .dummy, entonces suck busca sucknewsrc.dummy, suckkillfile.dummy, etc, y
crea sus archivos temporales con la misma extensión. Esto le permite a
Vd. mantener varios archivos sucknewsrc, uno para cada nodo.
-K Esta opción hace que suck que no tenga en cuenta el(los) archivo(s)
killfile (archivos de filtro).
-L Esta opción hace que suck que NO escriba en suck.killlog el registro de
los artículos filtrados.
-LS
Esta opción hace que suck cree un registro corto de cada artículo
eliminado por el filtro. El registro corto contiene el grupo del artículo
y cual es el patrón al que se ajustaba, así como el MsgID del
artículo eliminado.
-LL
Esta opción hace que suck cree un registro largo de cada artículo
filtrado. El registro largo contiene la información del registro corto y
la cabecera del artículo filtrado.
-H Esta opción hará que suck omita la comprobación del
historial.
-U usuario
-P clave
Estas dos opciones le permiten a Vd. especificar un usuario y una clave si su
servidor de NNTP las solicita.
-c
Si se especifica esta opción suck hará limpieza cuando finalice su
cometido. Esto incluye:
1. Move(r) sucknewsrc a sucknewsrc.old
2. Move(r) suck.newrc a sucknewsrc
3. Borrar (rm) suck.sorted y
suckothermsgs.
-M
Esta opción hace que suck envíe un comando de "modo de
lectura" al servidor remoto. If Vd. obtiene un comando de mensaje
inválido inmediatamente después del anuncio de bienvenida, pruebe
esta opción.
-W tiempo_de_pausa núm_mensajes_pausa
Esta opción hace que suck haga pausas mientras recoge artículos. Vd.
puede necesitar especificar la pausa (en segundos), y cuan a menudo parar
(cada X artículos). Ej.: -W 10 100 hará que suck pare durante 10
segundos cada 100 artículos. ¿ Por qué querría hacer esto
? Suck puede causar altas cargas en el servidor remoto y esta pausa permite al
servidor "tomar aliento".
-w tiempo_de_pausa núm_mensajes_pausa
Esta opción le permite a Vd. decelerar a suck mientras obtiene
artículos. Si Vd. envía a suck una señal predefinida (por
defecto SIGUSR1, véase suck_config.h) suck pasará de las opciones de
pausa por defecto (definidas mediante la opción -W) a los valores de esta
opción. Por ejemplo, Vd. ejecuta suck con -w 2 2 y Vd. envía a suck
una señal SIGUSR1 (usando kill). Suck parará dos segundos entre un
mensaje y otro, permitiendo "recuperar aliento" al servidor. Si Vd
envía otra señal SIGUSR1 a suck, entonces suck volverá a las
opciones de pausa por defecto. Si no se especificaron opciones de pausa en la
línea de comando (Vd. omitió -W), entonces suck volverá a su
velocidad máxima de recogida.
-l archivo_de_frases
Esta opción hace que suck cargue un archivo de frases alternativas, en vez
de usar los mensajes imbuidos. Esto le permite a Vd. hacer que suck imprima
sus mensajes en otro idioma o permite personalizar los mensajes sin tener que
recompilar suck. Véase más abajo.
-D
Esta opción hace que suck envíe varios mensajes de debug a
"debug.suck", usado básicamente por mantenedor.
-R
Esta opción hace que suck no revise el servidor de news cuando recomience.
El comportamiento por defecto es volver a revisar el servidor de news en busca
de artículos nuevos, inclusive en los recomienzos.
-q
Esta opción hace que suck no escriba la cuenta de artículos y BPS
mientras dura la obtención de mensajes. Conveniente cuando se está
ejecutando suck en modo desatendido, por ejemplo mediante crontab.
-C artículos
Esta opción hace que suck rompa la conexión y la reabra cada cierto
número de artículos. Esto está diseñado para luchar contra
la opción LIKE_PULLERS=DONT de INN, con la que hay quien compila. Con
LIKE_PULLERS=DONT, después de 100 mensajes, INN para cada mensaje,
bajando drásticamente la velocidad de recogida. Yo no recomiendo el uso
de esto, pero Vd. no tiene elección...
-k
Esta opción hace que suck NO añada el sufijo de la opción -p a
los archivos de filtro (killfiles), ni al maestro ni al de grupos. Esto le
permite a VD. mantener un mismo conjunto de archivos de filtro para varios
servidores.
-A
Esta opción hace que suck examine el nodo local (localhost, especificado en
la opción -hl ) y use su archivo active para confeccionar y actualizar el
sucknewsrc. Si Vd. añade un grupo a su nodo local, suck lo
añadirá a sucknewsrc y recogerá los artículos. O, si Vd.
borra un grupo de su nodo local, éste será borrado de sucknewsrc. Si
no está permitido enviar artículos a un grupo particular, entonces
la línea de sucknewsrc estará comentada. Con esta opción Vd.
nunca tiene que editar sucknewsrc. En caso de que Vd. tenga grupos de news
(como local y junk) de los que no quiere recoger mensajes, puede poner esos
grupos en el archivo "active-ignore", uno por cada línea, y
suck ignorará esos grupos cuando revise el nodo local (localhost). Si Vd.
usa la opción -p de sufijo, suck buscará la existencia de un archivo
"active-ignore" con ese sufijo. Si no existe, entonces buscará
la existencia de un archivo sin el sufijo.
-AL archivo_active
Esta opción es similar a la opción -A, excepto que lee la lista del
archivo active en lugar de conectarse al servidor de NNTP. Todas las
características de la opción -A son aplicables aquí
también. Si se usan las dos en la línea de comando, suck
intentará primero usar la opción -A; si ésa falla, usará
esta opción.
-hl localhost
Esta opción especifica el nodo local. Se requiere para las opciones -A y
-bp.
-T tiempo_tope
Esta opción reemplaza el valor precompilado de TIMEOUT, tiempo tope de
conexión. Es el tiempo que suck está esperando datos del host remoto
antes de sobrepasar el tope y abortarse.
-n
Esta opción hace que suck use el número de artículo en lugar del
MsgId cuando se reciben mensajes. Esta opción es supuestamente menos
dificultosa para el servidor remoto. También puede eliminar problemas si
su ISP (proveedor de acceso a internet) caduca los artículos
rápidamente y Vd. recibe errores de "article not found" con
frecuencia.
-u
Esta opción hace que suck envíe al servidor remoto un comando 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.
-z
Esta opción hace que suck omita el proceso normal de eliminación de
duplicaciones. Básicamente es para máquinas lentas donde la
eliminación de mensajes duplicados puede llevar más tiempo del que
se emplearía en la descarga de éstos. No se recomienda.
-x
Esta opción hace que suck no compruebe la existencia del caracter > al
final de los Messagge-ID's. Esta opción es para los servidores NNTP
desneuronados que truncan la información del XHDR a 72 caracteres.
-B
Esta opción hace que suck intente almacenar artículos en su directorio
ANTES de empezar a recoger mensajes. Esto puede ser útil si Vd. tuvo
problemas en una recogida previa. Esta opción sólo funciona si Vd.
especifica una opción de almacenamiento (ver más adelante). Si no
hay mensajes para almacenar alguna de las de las opciones de almancenamiento
pueden producir mensajes de advertencia. Pueden ser ignorados con toda
confianza. Si existen archivos de almacenamiento al final de la ejecución
de suck en el modo inn-batch, estos serán sobre-escritos ya que el nuevo
archivo de almacenamiento contendrá todos los mensajes. En el modo rnews,
si el archivo existe, se abortará y no almacenará ningún
mensaje.
OPCIONES LARGAS EQUIVALENTES¶
-a --always_batch
-bi --batch-inn
-br --batch_rnews
-bl --batch_lmove
-bf --batch_innfeed
-bp --batch_post
-c --cleanup
-dt --dir_temp
-dd --dir_data
-dm --dir_msgs
-e --def_error_log
-h --host
-hl --localhost
-k --kill_no_postfix
-l --language_file
-m --multifile
-n --number_mode
-p --postfix
-q --quiet
-r --rnews_size
-s --def_status_log
-w --wait_signal
-x --no_chk_msgid
-z --no_dedupe
-A --active
-AL --read_active
-B --pre-batch
-C --reconnect
-D --debug
-E --error_log
-H --no_history
-K --killfile
-L --kill_log_none
-LS --kill_log_short
-LL --kill_log_long
-M --mode_reader
-N --portnr
-P --password
-R --no_rescan
-S --status_log
-T --timeout
-U --userid
-V --version
-W --wait
DESCRIPCIÓN¶
MODO 1 - modo stdout o de salida estándar¶
%suck
%suck minodo.com
Suck obtiene mensajes de un servidor NNTP y envía los artículos a la
salida estándar. Suck acepta como argumento el nombre del servidor NNTP
o, si Vd. no da un argumento, tomará la variable de entorno NNTPSERVER.
Vd. puede redireccionar los artículos o comprimirlos directamente con
algo como "suck server.domain | gzip -9 > output.gz". Ahora es
asunto suyo que hacer son ellos. Puede Vd. tenerlos ya en su máquina
local porque usó una línea slip o puede tener que enviarlos a su
máquina local.
MODO 2 - Modo multiarchivo¶
%suck -m
%suck minodo.com -m
Suck obtiene mensajes de un servidor NNTP y guarda cada artículo en un
archivo separado. Se guardan en el directorio especificado en suck_config.h o
en la opción -dm de la línea de comando.
MODO 3 - Modo batch (en lote)¶
%suck -b[irlf] archivo_batch
o %suck -bp -hl localhost
%suck minodo.com -b[irlf] archivo_batch
Suck obtiene los archivos de un servidor NNTP y los guarda en archivos, uno por
cada artículo (modo multiarchivo). La colocación de los archivos
está basada en las definiciones en suck_config.h y la -dm de la
línea de comando. Una vez que suck ha recogido todos los artículos,
construirá un archivo batch que puede ser procesado por innxmit o rnews,
o podrá llamar a lmove para poner los archivos directamente en el formato
/news/grupo/numero.
-bi - construye el archivo batch para innxmit. Los archivos se dejan intactos y
el archivo batch se construye conteniendo una lista con el path completo de
cada artículo. Entonces innxmit puede ser ejecutado mediante:
%innxmit localhost archivo_batch
-bl - suck podrá lmove(r) para dejar los artículos con el formato
/news/grupo/numero. Vd. debe especificar el nombre del archivo de
configuración. Se pasan de suck a lmove los siguienetes argumentos:
El nombre del archivo de configuración
(el archivo_batch de esta opción)
Directorio especificado para los
artículos (-dm o el valor precompilado por defecto).
El archivo de registro de errores (-e o -E),
si se especifico en la línea de comando.
El archivo de frases (-l), si se
especificó en la línea de comando.
La opción de depuración de errores,
si se especificó en la línea de comando.
-br - construye un archivo para rnews. Los artículos son concatenados
consecutivamente, con el separador #!rnews tamaño. Esto puede ser usado
como entrada para rnews:
%rnews -S localhost archivo_batch
-r tamaño especifica el tamaño máximo del archivo para rnews.
Esta opción le permite a Vd. especificar el tamaño máximo del
archivo para rnews. Cuando se alcanza este límite, se crea un nuevo
archivo DESPUÉS de escribir el artículo en curso en el archivo batch
antiguo. El archivo batch segundo y los sucesivos tienen una secuencia que
comienza por 1 añadida al nombre de archivo especificado con -br.
Nótese que como se debe acabar de escribir el artículo en curso
después de alcanzar el límite, el tamaño máximo de archivo
es solamente aproximado.
-bf - construye un archivo de batch para infeed. Este archivo contiene el MsgID
y el camino completo para cada artículo. La principal diferencia entre la
opción de innxmit y ésta es que el archivo de infeed se contruye
según los artículos están siendo descargados, con lo que se le
pueden pasar los artículos a infeed incluso aunque todavía haya
más artículos descargándose.
-bp - Esta opción hace que suck construya un archivo batch y envíe los
artículos de ese archivo al nodo local (especificado como localhost en la
opción -hl). Esta opción usa el comando IHAVE para enviar todos los
artículos descargados al nodo local. El archivo batch se llama suck.post
y se sitúa en el directorio temporal (-dt). Se borra cuando concluye el
envío de todos los artículos de una forma satisfactoria. Los
artículos se borran incluso si no son aceptados por el servidor
(generalemente si ya está en el servidor o el artículo es demasiado
antiguo). Si ocurre otro error el artículo NO es borrado. Vd. puede
descargar y enviar artículos a su servidor local con el siguiente
comando, sin preocuparse por estar usando INND o CNEWS.
%suck news.servidor.com -bp -hl localhost -A
-c
ARCHIVO DE PARÁMETROS DE SUCK¶
Si Vd. especifica @archivo en la línea de comando, suck lo leerá y
buscará en él cualquier parámetro que Vd. quiera pasarle. Puede
especificar en este archivo los mismos argumentos que en la línea de
comando. También puede incluir comentarios. Los comentarios comienzan con
'#' y siguen hasta el final de la línea. Los argumentos de la línea
de comando prevalecen sobre los del archivo.
# Ejemplo de archivo de parámetros
-bi batch # opción de archivo de
almacenamiento
-M # usar el modo de lectura
SUCKNEWSRC¶
Suck busca un archivo
sucknewsrc para ver que artículos desea Vd. y
cuales ya han sido recibidos. El formato de sucknewsrc es muy simple. Consiste
en dos o tres campos. el primero es el nombre del grupo. El siguiente es el
número del mayor artículo del grupo descargado en la anterior
conexión. El tercer campo, opcional, limita el número de
artículos que son descargados cada vez. Si hay más artículos
que ese número, sólo se descargan los más recientes. Si el
tercer campo es 0 no se descargan mensajes. Los campos están separados
por un espacio.
comp.os.linux.announce 1 [ 100 ]
Cuando suck acaba, crea el archivo suck.newsrc que contiene el nuevo sucknewsrc
con los números de artículo actualizados.
Para añadir un nuevo grupo de news, simplemente añádalo a
sucknewsrc con número de artículo -1 (o cualquier número menor
que 0). Suck tomará los X mensajes más nuevos de ese grupo. Por
ejemplo, un -100 hará que suck descargue los 100 artículos más
recientes para ese grupo de news.
Para hacer que suck no tenga en cuenta un grupo de news ponga un # como primer
caracter de la línea.
SUCKKILLFILE y KEEP/KILLFILES DE GRUPO¶
Para usar las rutinas de mantener y filtar archivos, quítese de comentario
a la línea
#define KILLFILE en el archivo
suck_config.h.
Entonces, si existe el archivo
suckkillfile las cabeceras de todos los
artículos serán revisadas y los artículos descargados o no
según los parámetros en los archivos. Si no se especifica
opción de longitud de registro (véanse las opciones -L anteriores),
entonces se utilizará la opción de registro larga.
Se permiten comentarios en las líneas de los archivos de filtro. Las
líneas de comentario tienen un # en su primera posición. Todo el
contenido de la línea de comentario será ignorado.
El sistema de borrado y aceptación funciona así: Todos los
artículos son comprobados usando el archivo de filtro maestro (killfile).
Si un artículo no es eliminado por el filtro maestro, entonces se estudia
su línea de grupo (group). Si existe un archivo de grupo para alguno de
los grupos en el artículo, se comprueba ese archivo de grupo. Si se
ajusta al contenido de un archivo de aceptación (keepfile) entonces se
acepta y en otro caso se marca para ser borrado. Si se ajusta al contenido de
un archivo de filtro (killfile) entonces se marca para ser borrado, en otro
caso se mantiene entre los aceptados. Todo esto se hace con cada uno de los
grupos de la línea group.
PARÁMETROS¶
LOWLINES=#######
HILINES=#######
NRGRPS=####
QUOTE=c
GROUP=keep grupo archivo O BIEN GROUP=delete
grupo archivo
PROGRAM=camino_y_nombre
TIEBREAKER_DELETE
GROUP_OVERRIDE_MASTER
USE_EXTENDED_REGEX
HEADER:
Cualquier línea de cabecera
válida:
BODY:
BODYSIZE>
BODYSIZE<
Parámetros de los archivos KILL/KEEP¶
HILINES= Selecciona cualquier artículo de más líneas que
el especificado.
LOWLINES= Selecciona cualquier artículo de menos líneas que el
especificado.
NRGRPS= Esta línea seleccionará cualquier artículo que
tenga más grupos que el número especificado. Típicamente se usa
en el killfile para evitar spam. ( Un artículo spam es el que se
envía a demasiados grupos, como esos que siguen el esquema de
"hágase rico", etc.)
CABECERA: Cualquier línea de cabecera válida: Suck le
permite comprobar la existencia de un patrón o cadena en una línea
de cabecera simple o bien en toda la cabecera del artículo. Para
comprobar una línea individual basta especificarla. Por ejemplo, para
comprobar si boby@pixi.com está en la línea del From hay que poner
From:boby@pixi.com
Nótese que la línea de cabecera se debe ajustar EXACTAMENTE con el
contenido del artículo. Para comprobar existencia de una línea de
Follow-To: basta poner "Follow-To:" como parámetro. Cada item
de búsqueda debe ir en una línea separada, eg:
From:boby@xxx
From:nerd@yyy
Subject:suck
El parámetro HEADER: es un caso especial de los citados. Si Vd. usa
HEADER:, se buscará el item en toda la cabecera. Se permiten varias
líneas HEADER: en cada archivo de filtro (killfile).
Si en su sistema están las rutinas regex(), entonces se busca que case con
las expresiones regulares en vez de meras cadenas. Observe que la opción
QUOTE= se aplica incluso en las expresiones regulares.
BODY: Esta parámetro le permite analizar el cuerpo de un
artículo en busca de texto. De nuevo, si su sistema tiene regex(), Vd.
puede usar expresiones regulares y también se aplica la opción
QUOTE=. Se permiten varias líneas BODY: en cada archivo de filtro.
ADVERTENCIA: con ciertas combinaciones de regex, especialemnte con .* al
principio (ej BODY:.*jpg) y con grandes artículos puede ocurrir que las
rutinas regex consuman mucho tiempo de UCP y parezca que suck no está
haciendo nada.
BODYSIZE> Este parámetro selecciona cualquier artículo cuyo
tamaño de cuerpo (sin incluir las cabeceras) sea mayor que ese
parámetro.
BODYSIZE< Este parámetro selecciona los artículos cuyo
tamaño de cuerpo sea menor que dicho parámetro.
QUOTE= Este item define el caracter usado para la cita literal de
cadenas. El valor por defecto es ". Si un item comienza por el caracter
QUOTE, entonces es comprobado tal y como aparece (diferenciando las
mayúsculas y las minúsculas). Si un item no comienza con el caracter
de QUOTE, entonces las comprobaciones se hacen sin importar si se trata de
mayúsculas o minúsculas.
GROUP= Esta línea permite especificar parámetros para aceptar o
borrar artículos grupo por grupo. Hay tres partes en esta línea. Las
partes se deben separar por un espacio exactamente. La primera parte es o
"keep" o "delete". Si es keep, entonces se recogen los
artículos de ese grupo que se ajustan los parámetros del archivo de
grupo. Si es delete, entonces no se recogen los artículos de ese grupo
que se ajustan a los parámetros. La segunda parte, el nombre de grupo, es
el nombre completo del grupo que se se comprobará usando el archivo de
grupo. El nombre de grupo puede contener un * como último caracter para
ajustarse a varios grupos, ej: "esp.comp.so.linux.*" puede ajustarse
a esp.comp.so.linux.anuncios, esp.comp.so.linux.redes, etc. La tercera parte
indica el archivo de grupo que contiene los parámetros sobre los que se
comprobará. Observe que si Vd. especifica un sufijo con la opción
-p, ese sufijo se añade al nombre del archivo que busca suck, SALVO que
use la opción -k anterior.
GROUP_OVERRIDE_MASTER Esto le permite a Vd. suprimir el comportamiento
por defecto del archivo de filtro. Si aparece esta opción en el archivo
de filtro maestro se comprobará el archivo de grupo incluso aunque el
artículo en cuestión sea marcado para eliminar por el filtro
maestro. Si el archivo de grupo decide no eliminarlo, entonces será
aceptado.
TIEBREAKER_DELETE
Esta opción le permite a Vd. suprimir el comportamiento de desligadura que
incluido por defecto. Se da cuando un mensaje es marcado para aceptarse en un
grupo y para ser eliminado en otro. El comportamiento por defecto es aceptar
el mensaje. La opción TIEBREAKER_DELETE evitará esto y hará que
el artículo sea eliminado.
USE_EXTENDED_REGEX Esta opción hace que suck use expresiones
regulares extendidas en vez de expresiones regulares estándar. Puede ser
usado en el archivo de filtro maestro, en cuyo caso se aplica a todos los
archivos de filtro o en un archivo de filtro individual, en cuyo caso se
aplica a los parámetros que le siguen en el archivo de filtro.
PROGRAM= Esta opción permite a suck llamar a un programa externo
para comprobar cada artículo. En esta línea Vd. puede especificar
argumentos además del nombre del archivo. Si la línea está en
su suckkillfile, todas las demás lineas se ignorarán. En vez de eso,
la cabecera del artículo se enviará al programa externo y éste
determinará si recogerlo o no. Funciona así: mediante un fork, suck
ejecutará su programa con la entrada y la salida redireccionadas. Suck
pasará las cabeceras a su programa a través de la entrada estandar,
stdin, y esperará una respuesta a través de la salida estándar,
stdout. El flujo de datos para cada artículo es el siguiente:
1. suck escribirá en la entrada estándar del programa externo una
cadena de 8 octetos, que representa la longitud de la cabecera. La longitud
está en ascii, alineada a la izquierda y terminada por un caracter de
cambio de línea (ejemplo: "1234\n").
2. acto seguido suck escribirá la
cabecera en la entrada estándar del programa externo.
3. suck esperará una respuesta de dos
caracteres en la salida estándar. Este código de respuesta puede ser
"0\n" o "1\n" (NO CERO O UNO EN BINARIO, CERO O UNO EN
ASCII). Si el código de retorno es cero, entonces suck recogerá el
artículo. Si es uno, no.
4. Cuando no haya más artículos, la
longitud escrita (para el paso 1) será de cero (nuevamente en ascii:
"0\n"). Suck esperará a la finalización del programa
externo antes de continuar. El programa externo puede hacer cualquier tarea de
limpieza necesaria y después finalizar. Nota: suck no seguirá
procesando nada mientras el programa no finalice.
Todos los parámetros son válidos tanto en el archivo de filtro maestro
como en el archivo de filtro de grupo, con la excepción de GROUP,
PROGRAM, TIEBREAKER_DELETE y GROUP_OVERRIDE_MASTER. Éstos sólo son
válidos en el archivo de filtro maestro.
SUCKOTHERMSGS¶
Si existe
suckothermsgs , debe contener un listado de Message-ID's, uno
en cada línea, incluyendo los <>. Estos artículos serán
recogidos, a la vez que los artículos resultantes del proceso del archivo
sucknewsrc. Esto puede ser usado para recoger artículos de otros
grupos o que no han sido recogidos por haber sido excluidos por el filtro.
Estos artículos
NO SON procesados por las rutinas de filtro de
artículos.
FRASES DE DIVERSOS LENGUAJES¶
Si se especifica la opción
-l archivo_de_frases o existe el archivo
/usr/local/lib/suck.phrases (definido en suck_config.h), entonces suck
leerá este archivo de frases alternativas y las usará para todos los
mensajes de estado y de error en lugar de los mensajes compilados por defecto.
La línea de comando prevalece sobre el archivo, si aparecen ambos. El
archivo de frases contiene todos los mensajes usados por suck, rpost, testhost
y lmove, cada uno en una línea separada y entre comillas. Para crear un
archivo de frases, ejecute en la línea de comando la instrucción:
make phrases Esto creará el archivo "phrases.engl", que
es una lista de las frases por defecto. Basta editar este archivo, cambiando
las frases en inglés por las del lenguaje que elija, asegurándose de
mantener las frases entre comillas. Esas frases pueden incluir variables
usadas para escribir datos provenientes del programa, como por ejemplo el
nombre del nodo. Las variables se denotan por %vN%, donde N es un número.
Estas variables pueden aparecer en cualquier orden en la frase, por ejemplo,
son frases válidas:
"Hola, %v1%, bienvenido a %v2%"
o
"Bienvenido a %v2%, %v1%"
siguiente línea, de retorno de carro o un tabulador respectivamente.
Observe que la primera línea del archivo de frases es el número de
versión actual. Se compara con el número de versión del suck
que se está ejecutando para tener por seguro de que se trata del archivo
de frases de la versión correcta.
Si Vd. madifica el código fuente y añade frases nuevas, debe regenerar
phrases.h para que todo funcione correctamente. Para crearlo basta ejecutar
make phrases.h en la línea de comando.
TRATAMIENTO DE SEÑALES¶
Suck acepta dos señales definidas en
suck_config.h. La primera
señal (por defecto es SIGTERM) hará que suck acabe de recoger el
artículo en curso, almacene en el batch los artículos recogidos y
acabe sin error.
La segunda señal (por defecto SIGUSR1) hará que suck use los valores
de pausa definidos con la opción -w (ver los párrafos anteriores).
VALOR DEVUELTO¶
Suck acabará con los siguientes códigos de retorno:
0 = correcto, sin errores
1 = no hay artículos disponibles para ser
recogidos.
2 = suck recibió una respuesta inesperada
a un comando enviado al servidor remoto.
3 = se usó la opción -V.
4 = suck no pudo llevar a cabo el proceso de
autorización en el servidor remoto.
-1 = error general.
HISTORIA¶
Autor Original - Tim Smith (se desconoce su
dirección)
Mantenido por -
Marzo 1995 - Sven Goldt
(goldt@math.tu-berlin.de)
Julio 1995 - Robert A. Yetman
(boby@pixi.com)
VÉASE TAMBIÉN¶
testhost(1),
rpost(1), lpost(1).