table of contents
- NOMBRE
- SINOPSIS
- OPCIONES LARGAS EQUIVALENTES
- DESCRIPCIÓN
- MODO 1 - modo stdout o de salida estándar
- MODO 2 - Modo multiarchivo
- MODO 3 - Modo batch (en lote)
- ARCHIVO DE PARÁMETROS DE SUCK
- SUCKNEWSRC
- SUCKKILLFILE y KEEP/KILLFILES DE GRUPO
- PARÁMETROS
- Parámetros de los archivos KILL/KEEP
- SUCKOTHERMSGS
- FRASES DE DIVERSOS LENGUAJES
- TRATAMIENTO DE SEÑALES
- VALOR DEVUELTO
- HISTORIA
- VÉASE TAMBIÉN
SUCK(1) | General Commands Manual | SUCK(1) |
NOMBRE¶
suck - Obtiene un pequeño grupo de mensajes de un servidor NNTP, evitando los comandos NEWNEWSSINOPSIS¶
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 ponerFrom: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)