SUCK(1)

NUME
suck - extrage un mic flux de știri de pe un server NNTP, evitând comanda NEWNEWS.

SINOPSIS
suck [ nume-gazdă ] [ @nume-fișier ] [ -V ] [ -K ] [ -L[SL] ] [ -LF nume-fișier ] [ -H ] [ -HF nume-fișier ] [ -d[tmd] nume-director ] [ -s | -S nume-fișier ] [ -e | -E nume-fișier ] [ -a ] [ -m ] [ -b[irlf] fișier-loturi ] [ -r dimensiune-fișier ] [ -p extensie ] [ -U id-utilizator ] [ -P parola ] [ -Q ] [ -c ] [ -M ] [ -N număr-port ] [ -W timp-pauză nr-mesaje-pauză ] [ -w timp-pauză nr-mesaje-pauză ] [ -l fișier-frază ] [ -D ] [ -R ] [ -q ] [ -C număr-elemente ] [ -k ] [ -A ] [ -AL fișier-activ ] [ -hl nume-gazdă-locală ] [ -bp ] [ -T timp-așteptare ] [ -n ] [ -u ] [ -z ] [ -x ] [ -B ] [ -O ] [ -G ] [ -X ] [ -f ] [ -y filtru-publicare ] [ -F ] [ -g ] [ -i număr-articole ] [ -Z ] [ -rc ] [ -lr ] [ -sg ] [ -ssl ] [ -SSL ]

Opțiuni valabile în toate modurile

hostname

Numele de gazdă poate include opțional numărul portului, sub forma Gazdă:Port. Dacă este utilizată această opțiune, orice număr de port specificat prin opțiunea „-N” este ignorat.

@nume-fișier

Această opțiune îi indică lui suck să citească alte opțiuni dintr-un fișier în plus față de linia de comandă.

-a

Această opțiune forțează suck să stocheze întotdeauna toate articolele descărcate, chiar dacă suck se întrerupe din orice motiv. Fără această opțiune, suck va încărca articolele numai dacă se termină cu succes sau dacă este anulat de un semnal (a se vedea mai jos).

-A

Această opțiune îi indică lui suck să scaneze serverul local (specificat cu opțiunea „-hl”) și să utilizeze fișierul său activ pentru a construi și actualiza sucknewsrc. Dacă adăugați un grup la serverul local, suck îl va adăuga la sucknewsrc și va descărca articolele. Sau, dacă ștergeți un grup de pe serverul dvs. local, acesta va fi șters din sucknewsrc. Dacă publicarea nu este permisă într-un anumit grup, atunci linia din sucknewsrc este doar comentată. Cu această opțiune, nu ar trebui să trebuiască să editați niciodată sucknewsrc. În cazul în care aveți grupuri de știri (cum ar fi control și junk) pe care nu doriți să le descărcați, puteți introduce aceste grupuri de știri într-un fișier „active-ignore”, unul pe linie, iar suck va ignora aceste grupuri de știri atunci când scanează gazda locală. Dacă sistemul dvs. acceptă regex(), puteți utiliza expresii regulate în fișierul active-ignore pentru a omite mai multe grupuri, de exemplu: fred.*. Dacă utilizați opțiunea „-p” (postfix), suck va verifica existența unui fișier active-ignore cu postfix. Dacă acesta nu există, atunci suck va verifica existența fișierului fără postfix.

NOTĂ: Dacă gazda locală se află pe un port non-standard, numărul portului poate fi specificat ca parte a numelui de gazdă, în forma Gazdă:Port.

NOTĂ: Dacă utilizați expresii regulate, suck va adăuga în mod silențios un „^” la începutul numelui grupului și un „$” la sfârșitul numelui grupului, dacă acestea nu sunt deja prezente, astfel încât, dacă aveți „comp.os.linux”, acesta nu se va potrivi cu „comp.os.linux.answers” sau dacă aveți „alt.test”, acesta nu se va potrivi cu „comp.alt.test”.

-AL fișier-activ

Această opțiune este identică cu opțiunea „-A”, cu excepția faptului că citește fișierul activ din fișierul local specificat în loc să îl citească de la gazda locală. Toate avertismentele de la opțiunea „-A” se aplică și acestei opțiuni. Dacă ambele opțiuni sunt utilizate în linia de comandă, suck încearcă mai întâi să utilizeze opțiunea „-A”, apoi, dacă eșuează, utilizează această opțiune.

-B

Această opțiune îi indică lui suck să încerce să stocheze toate articolele din directorul său ÎNAINTE de a începe descărcarea mesajelor. Acest lucru poate fi util dacă aveți o problemă cu descărcarea anterioară. Această opțiune va funcționa numai dacă specificați o opțiune de lot „batch” (a se vedea mai jos). În cazul în care nu există mesaje care să fie descărcate în lot, unele dintre opțiunile de lot pot produce mesaje de avertizare. Acestea pot fi ignorate în siguranță. De asemenea, dacă fișierul batch există la sfârșitul execuției, în modul inn-batch, acesta va fi suprascris, deoarece noul fișier batch va conține toate mesajele. În modul rnews, dacă fișierul batch există, acesta va abandona și nu va stoca niciun mesaj.

-c

Dacă este specificată această opțiune, suck va curăța după sine. Aceasta include:
    1. Mutarea sucknewsrc la sucknewsrc.old
    2. Mutarea suck.newrc în sucknewsrc
    3. Eliminarea suck.sorted și suckothermsgs.

-C număr-elemente

This option tells suck to drop the connection and reopen it every count number of articles. This is designed to battle INN's LIKE_PULLERS=DONT option, that some folks compile in. With LIKE_PULLERS=DONT, after 100 messages INN will pause between every message, dramatically reducing your download speed. I don't recommend the use of this, but if you have no other choice....

-dd nume-director

-dm nume-director

-dt nume-director

Specifică locația diferitelor fișiere utilizate de suck.

-dd nume-director = directorul fișierelor de date utilizate de suck (sucknewsrc, suckkillfile, suckothermsgs, active-ignore, sucknodownload)

-dm nume-director = directorul pentru stocarea articolelor create în modul Multifișier sau în modul pe loturi. NU faceți ca acesta să fie același cu directoarele utilizate pentru opțiunile „-dt” sau „-dd”, altfel veți pierde toate fișierele de configurare.

-dt nume-director = directorul de fișiere temporare create de suck (suck.newrc, suck.sort, suck.restart, suck.killlog, suck.post).

-D

Această opțiune îi indică lui suck să înregistreze diverse mesaje de depanare în „debug.suck”, în primul rând pentru a fi utilizate de responsabilul cu menținerea.

-e | -E nume-fișier

Aceste opțiuni vor trimite toate mesajele de eroare (afișate în mod normal la ieșirea de eroare standard) către un fișier alternativ. Versiunea în minusculă a opțiunii, „-e”, va trimite mesajele de eroare la fișierul implicit compilat definit în suck_config.h. Valoarea implicită este suck.errlog. Versiunea în majusculă a opțiunii, „-E”, necesită parametrul „nume-fișier. Toate mesajele de eroare vor fi trimise în acest fișier.

-f

Această opțiune îi indică lui suck să se reconecteze după eliminarea duplicatelor (articole, fișiere) și înainte de a descărca articolele. Acest lucru este valabil în cazul în care timpii lungi de eliminare a duplicatelor cauzează expirarea timpului de așteptare la capătul de la distanță.

-F

Această opțiune îi indică lui suck să se reconecteze după citirea fișierului activ local și înainte de descărcarea Msg-ID-urilor. Acest lucru este valabil în cazul unui fișier activ de mari dimensiuni, care cauzează expirarea timpului de răspuns la distanță.

-g

Această opțiune face ca suck să descarce numai antetele articolelor selectate. Ca urmare a acestei opțiuni, orice grupare a articolelor este omisă. Această opțiune funcționează cu fișierele de filtrare „killfile”, însă opțiunile fișierului de filtrare precum BODYSIZE> vor fi ignorate, deoarece corpul articolului nu va fi niciodată descărcat.

-G

Această opțiune face ca suck să afișeze numărul de mesaje și liniile de stare BPS într-un format ușor diferit, mai potrivit pentru utilizarea de către un program de filtrare (cum ar fi o interfață grafică cu utilizatorul).

-H

Această opțiune va face ca suck să ocolească verificarea istoricului.

-HF nume-fișier-istoric

Această opțiune indică locația fișierului de istoric. Valoarea implicită este /var/lib/news/history.

-hl nume-gazdă-locală

Această opțiune specifică numele gazdei locale. Această opțiune este necesară atât cu opțiunea „-A”, cât și cu opțiunea „-bp”.

-i număr-articole

Această opțiune îi indică lui suck numărul de articole care trebuie descărcate dacă utilizați opțiunea „-A” sau „-AL” și este adăugat un nou grup. Valoarea implicită este definită în suck_config.h (ACTIVE_DEFAULT_LASTREAD, în prezent -100). NOTĂ: Acesta trebuie să fie un număr negativ (de exemplu -100, -50), sau 0, pentru a descărca toate articolele disponibile în prezent în grup.

-k

Această opțiune îi indică lui suck să NU atașeze sufixul de la opțiunea „-p” la numele fișierelor kill(de filtare), atât fișierul de filtrare principal, cât și orice fișiere de grup. Acest lucru vă permite să mențineți un singur set de killfiles(fișiere de filtare) pentru mai multe servere.

-K

Această opțiune va face ca suck să ocolească verificarea fișierelor de filtrare.

-l fișier-frază

Această opțiune îi indică lui suck să încarce un fișier de fraze alternativ, în loc să utilizeze mesajele încorporate. Acest lucru vă permite să imprimați frazele suck într-o altă limbă sau să personalizați mesajele fără a reconstrui suck. A se vedea mai jos.

-lr

Această opțiune este utilizată împreună cu opțiunea „cel mai vechi articol” din sucknewsrc, pentru a descărca cele mai vechi articole, în loc de cele mai noi articole. Consultați secțiunea respectivă pentru mai multe detalii.

-L

Această opțiune îi indică lui suck să NU înregistreze articolele filtrate în suck.killlog.

-LF nume-fișier

Această opțiune vă permite să înlocuiți fișierul implicit încorporat „suck.killlog” pentru fișierul care conține intrările de jurnal pentru articolele filtrate.

-LL

Această opțiune îi indică lui suck să creeze intrări lungi în jurnal pentru fiecare articol eliminat. Intrarea lungă conține intrarea scurtă în jurnal și antetul pentru mesajul eliminat.

-LS

Această opțiune îi indică lui suck să creeze intrări scurte în jurnal pentru fiecare articol eliminat. Intrarea scurtă conține grupul și modelul care au fost potrivite, precum și MsgID-ul articolului eliminat.

-M

Această opțiune îi indică lui suck să trimită comanda „mode reader” către serverul de la distanță. Dacă primiți un mesaj de comandă nevalidă imediat după anunțul de bun venit, atunci încercați această opțiune.

-n

Această opțiune îi indică lui suck să utilizeze numărul articolului în loc de MsgId pentru a extrage articolele. Se presupune că această opțiune este mai puțin agresivă pentru serverul de la distanță. De asemenea, poate elimina problemele în cazul în care furnizorul dvs. de servicii de internet expediază rapid articolele și primiți frecvent erori de tip „article not found”. De asemenea, dacă ISP-ul dvs. utilizează DNEWS, s-ar putea să aveți nevoie de această opțiune pentru ca acesta să știe că citiți articole dintr-un grup.

-N număr-port

Această opțiune indică lui suck să utilizeze un număr de port NNRP alternativ atunci când se conectează la gazdă, în locul celui implicit, 119.

-O

Această opțiune îi indică lui suck să sară peste primul articol la repornire. Această opțiune este utilizată atunci când există o problemă cu un articol pe serverul de la distanță. Din anumite motive, unele servere NNTP, atunci când au o problemă cu un anumit articol, se blochează. Cu toate acestea, atunci când reporniți, vă întoarceți la același articol și vă opriți din nou. Această opțiune îi indică lui suck să sară peste primul articol la repornire, astfel încât să puteți obține restul articolelor.

-p extensie

Această extensie este adăugată la toate fișierele, astfel încât să puteți avea mai multe fluxuri de la situri. De exemplu, dacă specificați „-p .dummy”, atunci suck caută sucknewsrc.dummy, suckkillfile.dummy etc. și își creează fișiere temporare cu aceeași extensie. Acest lucru vă va permite să păstrați mai multe fișiere sucknewsrc, unul pentru fiecare sit.

-q

Această opțiune îi indică lui suck să nu afișeze mesajele BPS și numărul de articole în timpul descărcării. Utilă atunci când executați suck nesupravegheat, cum ar fi dintr-un „crontab”.

-R

Această opțiune îi indică lui suck să omită o nouă scanare a serverului de știri de la distanță la o repornire. Valoarea implicită este de a reanaliza serverul de știri pentru orice articole noi de fiecare dată când suck rulează, inclusiv la repornire.

-rc

Această opțiune îi indică lui suck să își schimbe comportamentul atunci când serverul de la distanță își reinițializează contoarele de articole. Comportamentul implicit este de a reinițializa ultima citire din sucknewsrc la contorul curent de articole cel mai mare. Cu această opțiune, suck reinițializează ultima citire din sucknewsrc la contorul curent cel mai mic de articole, ceea ce îl determină să preia toate articolele din grup și să utilizeze rutinele historydb pentru a elimina duplicatele articolele existente.

-s | -S nume-fișier

Aceste opțiuni vor trimite toate mesajele de stare (afișate în mod normal la ieșirea standard) către un fișier alternativ. Versiunea în minusculă a opțiunii, „-s”, va trimite mesajele de stare la fișierul implicit compilat definit în suck_config.h. Valoarea implicită este „/dev/null”, deci nu va fi afișat niciun mesaj de stare. Versiunea în majusculă a opțiunii, „-S”, necesită parametrul „nume-fișier”. Toate mesajele de stare vor fi trimise în acest fișier.

-sg

Această opțiune îi indică lui suck să adauge numele grupului curent care este descărcat, dacă este cunoscut, la afișajul BPS. De obicei, singura dată când suck nu cunoaște numele grupului este atunci când un articol este descărcat prin intermediul fișierului suckothermsgs.

-ssl

Această opțiune îi indică lui suck să utilizeze SSL pentru a comunica cu serverul de la distanță, dacă suck a fost compilat cu suport pentru SSL.

-SSL

Această opțiune îi indică lui suck să utilizeze SSL pentru a comunica cu serverul local, dacă suck a fost compilat cu suport pentru SSL.

-T timp-așteptare

Această opțiune prevalează asupra valorii TIMEOUT (timpului de așteptare) compilate. Acesta este intervalul de timp în care suck așteaptă date de la gazda de la distanță înainte de a se opri și a abandona. Valoarea timpului de așteptare este exprimată în secunde.

-u

Această opțiune îi indică lui suck să trimită comanda AUTHINFO USER imediat după conectarea la serverul de la distanță, în loc să aștepte o cerere de autorizare. Trebuie să furnizați opțiunile „-U” și „-P” atunci când utilizați această opțiune.

-U id-utilizator

-P parola

Aceste două opțiuni vă permit să specificați un „userid” (identificator de utilizator) și o parolă, în cazul în care serverul NNTP le solicită.

-Q

Această opțiune îi indică lui suck să obțină ID-ul de utilizator și parola pentru autentificarea NNTP din variabilele de mediu „NNTP_USER” și „NNTP_PASS”, în locul utiliztorului/parolei cu „-U” sau „-P”. Acest lucru previne o potențială problemă de securitate în cazul în care cineva care execută o comandă «ps» vă poate vedea userid-ul și parola.

-V

Această opțiune va face ca suck să afișeze numărul versiunii și apoi să iasă.

-w timp-pauză nr-mesaje-pauză

Această opțiune vă permite să încetiniți suck în timp ce extrageți articole. Dacă trimiteți către suck un semnal predefinit (implicit SIGUSR1, consultați suck_config.h), suck va schimba opțiunile de pauză implicite (dacă sunt specificate de opțiunea „-W”) cu valorile din această opțiune. De exemplu, dacă executați suck cu „-w 2 2” și îi trimiteți un SIGUSR1 (folosind kill), suck va face o pauză de 2 secunde între fiecare mesaj, permițând serverului să „își tragă sufletul”. Dacă trimiteți lui suck un alt SIGUSR1, atunci suck va reveni la opțiunile de pauză implicite. Dacă nu a fost specificată nicio opțiune de pauză în linia de comandă (ați omis „-W”), atunci suck va reveni la opțiunea implicită de extragere la viteză maximă.

-W timp-pauză nr-mesaje-pauză

Această opțiune îi indică lui suck să facă o pauză între descărcarea articolelor. Trebuie să specificați cât timp să facă pauză (în secunde) și cât de des să facă pauză (la fiecare X nr de articole). Exemplu: „-W 10 100” ar determina suck să facă o pauză de 10 secunde la fiecare 100 de articole. De ce ați dori să faceți acest lucru? Suck poate cauza încărcări mari pe un server la distanță, iar această pauză permite serverului să „își tragă sufletul”.

-x

Această opțiune îi indică lui suck să nu verifice ID-urile mesajelor pentru caracterul final >. Această opțiune este pentru serverele NNTP „fără creier” care trunchiază informațiile XHDR la 72 de caractere.

-X

Această opțiune îi indică lui suck să ocolească fișierele de filtrare XOVER.

-y filtru-publicare

Această opțiune este valabilă numai atunci când se utilizează oricare dintre modurile pe loturi. Aceasta vă permite să editați oricare sau toate articolele descărcate înainte de a le publica pe gazda locală. Consultați mai jos pentru mai multe detalii.

-z

Această opțiune îi indică lui suck să ocolească procesul normal de eliminare a duplicatelor. Acest lucru este valabil în primul rând pentru mașinile lente, unde eliminarea duplicatelor durează mai mult decât ar dura descărcarea mesajelor. Nu este recomandată.

-Z

Această opțiune îi indică lui suck să utilizeze comanda XOVER în locul comenzii XHDR pentru a prelua informațiile necesare pentru descărcarea articolelor. Utilizați această opțiune dacă serverul dvs. de știri de la distanță nu acceptă comanda XHDR.

OPȚIUNI LUNGI ECHIVALENTE
    -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
    -f --reconnect_dedupe
    -g --header_only
    -h --host
    -hl --localhost
    -k --kill_no_postfix
    -l --language_file
    -lr --low_read
    -m --multifile
    -n --number_mode
    -p --postfix
    -q --quiet
    -r --rnews_size
    -rc --resetcounter
    -s --def_status_log
    -sg --show_group
    -ssl --use_ssl
    -w --wait_signal
    -x --no_chk_msgid
    -y --post_filter
    -z --no_dedupe
    -A --active
    -AL --read_active
    -B --pre-batch
    -C --reconnect
    -D --debug
    -E --error_log
    -G --use_gui
    -H --no_history
    -HF --history_file
    -K --killfile
    -L --kill_log_none
    -LS --kill_log_short
    -LL --kill_log_long
    -M --mode_reader
    -N --portnr
    -O --skip_on_restart
    -P --password
    -Q --password_env
    -R --no_rescan
    -S --status_log
    -SSL --local_use_ssl
        -T --timeout
        -U --userid
        -V --version
        -W --wait
        -X --no_xover
        -Z --use_xover

DESCRIERE

MODUL 1 - modul de ieșire standard
    %suck
    %suck gazda-mea.com

Suck preia știri de pe un server NNTP și trimite articolele la ieșirea standard. Suck acceptă ca argument numele unui server NNTP sau, dacă nu furnizați un argument, va lua ca argument variabila de mediu NNTPSERVER. Puteți redirecționa articolele către un fișier sau le puteți comprima din mers, cum ar fi «suck server.domain | gzip -9 > output.gz». Acum depinde de dvs. ce faceți cu articolele. Poate că aveți deja rezultatul pe calculatorul dvs. local, deoarece ați utilizat o linie de transfer, sau mai trebuie să transferați rezultatul pe calculatorul dvs. local.

MODUL 2 - modul multifișier
    %suck -m
    %suck gazda-mea.com -m

suck preia știri de pe un server NNTP și stochează fiecare articol într-un fișier separat. Acestea sunt stocate în directorul specificat în suck_config.h sau prin opțiunea de linie de comandă „-dm”.

MODUL 3 - modul în loturi
    %suck gazda-mea.com -b[irlf] fișier-loturi
    sau %suck gazda-mea.com -bp -hl gazda-locală
    sau %suck gazda-mea.com -bP NR -hl gazda-locală
    %suck gazda-mea.com -b[irlf] fișier-loturi

Suck va prelua articole de știri de pe un server NNTP și le va stoca în fișiere, câte unul pentru fiecare articol (modul Multifile). Locația fișierelor se bazează pe definițiile din suck_config.h și pe opțiunea de linie de comandă „-dm”. După ce a terminat de descărcat articolele, suck va crea un fișier batch care poate fi procesat de innxmit sau rnews, sau va apela lmove pentru a pune fișierele direct în formatul știri/grup/număr.

„-bi” - construiește un fișier pe loturi pentru innxmit. Articolele sunt lăsate intacte, iar un fișier pe loturi este construit cu o listă unică a rutei complete a fiecărui articol. Apoi poate fi apelat innxmit:

    %innxmit gazda-locală fișier-loturi

„-bl” - suck va apela lmove pentru a pune articolele în format știri/grup/număr. Trebuie să furnizați numele fișierului de configurare în linia de comandă. Următoarele argumente de la suck sunt transmise către lmove:

    Numele fișierului de configurare (numele fișierului pe loturi furnizat cu această opțiune)
    Directorul specificat pentru articole (cu „-dm” sau cel implicit încorporat).
    Jurnalul de erori în care să se înregistreze erorile (cu „-e” sau „-E”), dacă este furnizat în linia de comandă.
    Fișierul de fraze (cu „-l”), dacă este furnizat în linia de comandă.
    Opțiunea de depanare a erorilor, dacă este furnizată în linia de comandă.

„-br” - construiește un fișier batch pentru rnews. Articolele sunt concatenate împreună, cu separatorul #!rnews size article (#!rnews dimensiune articol). Acesta poate fi folosit ca intrare pentru rnews:

    %rnews -S gazda-locală fișier-loturi

„-r dimensiune-fișier” specifică dimensiunea maximă a fișierului batch pentru rnews. Această opțiune vă permite să specificați dimensiunea maximă a unui fișier batch care urmează să fie alimentat către rnews. Atunci când această limită este atinsă, se creează un nou fișier batch DUPĂ ce am terminat de scris articolul curent în vechiul fișier batch. Al doilea fișier batch și următoarele primesc un număr de secvență de 1 în sus atașat la numele fișierului specificat cu „-br”. Rețineți că, deoarece trebuie să termin de scris articolul curent după atingerea limitei, dimensiunea maximă a fișierului este doar aproximativă.

„-bf” - construiește un fișier batch pentru innfeed. Acest fișier batch conține MsgID și ruta completă a fiecărui articol. Principala diferență dintre această opțiune și opțiunea innxmit este că fișierul innfeed este construit pe măsură ce articolele sunt descărcate, astfel încât innfeed poate afișa articolele, chiar și în timp ce sunt descărcate mai multe articole.

„-bp” - Această opțiune îi indică lui suck să creeze un fișier batch și să trimită articolele din acel fișier batch la gazda locală (specificată cu opțiunea „-hl”). Această opțiune utilizează comanda IHAVE pentru a trimite toate articolele descărcate către gazda locală. Fișierul batch se numește suck.post și este plasat în directorul temporar („-dt”). Acesta este șters după finalizare, la fel ca și articolele publicate cu succes. Dacă articolul nu este dorit de server (de obicei pentru că există deja pe server sau pentru că este prea vechi), articolul este, de asemenea, șters. Dacă apar alte erori, articolul NU este șters. Cu următoarea linie de comandă, puteți descărca și publica articole fără să vă îngrijorați dacă utilizați INND sau CNEWS.

    %suck news.server.com -bp -hl gazda-locală -A -c

-bP NR - Această opțiune funcționează identic cu opțiunea „-bp” de mai sus, cu excepția faptului că în loc să aștepte până când toate articolele sunt descărcate, le va publica pe serverul local după descărcarea NR de articole.

    %suck news.server.com -bP 100 -hl gazda-locală -A -c

FIȘIERUL DE ARGUMENTE AL SUCK

Dacă specificați @nume-fișier în linia de comandă, suck va citi din nume-fișier și îl va analiza pentru orice argumente pe care doriți să le transmiteți către suck. În acest fișier specificați aceleași argumente ca și în linia de comandă. Argumentele pot fi plasate pe o singură linie sau repartizate pe mai mult de o linie. De asemenea, puteți utiliza comentarii. Comentariile încep cu „#” și merg până la sfârșitul unei linii. Toate argumentele din linia de comandă prevalează asupra argumentelor din fișier.

    # Exemplu de fișier de argumente
    -bi batch # opțiune fișier pe loturi
    -M    # opțiunea „utilizarea modului de cititor”

SUCKNEWSRC

Suck caută un fișier sucknewsrc pentru a vedea ce articole doriți și care le-ați primit deja. Formatul fișierului sucknewsrc este foarte simplu. Este format dintr-o linie pentru fiecare grup de știri. Linia conține două sau trei câmpuri.

Primul câmp este numele grupului.

Al doilea câmp este cel mai mare număr de articol care a fost în grup atunci când grupul a fost descărcat ultima dată.

Al treilea câmp, care este opțional, limitează numărul de articole care pot fi descărcate la un moment dat. Dacă există mai multe articole decât acest număr, sunt descărcate numai cele mai noi. Dacă al treilea câmp este 0, atunci nu sunt descărcate mesaje noi. Dacă este specificată opțiunea de linie de comandă „-lr”, în loc să se descarce cele mai noi articole, suck va descărca cele mai vechi articole.

Câmpurile sunt separate printr-un spațiu.

    comp.os.linux.announce 1 [ 100 ]

Când suck termină, creează fișierul suck.newrc care conține noul sucknewsrc cu numerele de articole actualizate.

Pentru a adăuga un nou grup de știri, introduceți-l în sucknewsrc, cu cel mai mare număr de articole de -1 (sau orice număr mai mic decât 0). Suck va obține apoi cel mai recent număr X de mesaje pentru grupul de știri respectiv. De exemplu, un -100 va face ca suck să descarce cele mai recente 100 de articole pentru grupul de știri respectiv.

Pentru a-i indica lui suck să omită un grup de știri, puneți un # ca prim caracter al unei linii.

SUCKKILLFILE și SUCKXOVER
Există două tipuri de fișiere de filtrare acceptate în suck. Primul, prin intermediul fișierului suckkillfile, elimină articolele pe baza informațiilor din antetul sau corpul articolului. Al doilea, prin intermediul fișierului suckxover, elimină articolele pe baza informațiilor obținute prin comanda NNTP XOVER. Acestea sunt implementate în două moduri fundamental diferite. Eliminarea prin fișierul suckkillfile se face pe măsură ce articolele sunt descărcate, unul câte unul. Eliminarea XOVER se face în timp ce suck obține lista articolelor care urmează să fie descărcate și înainte ca un singur articol să fie descărcat. Puteți utiliza oricare, niciunul sau ambele tipuri de fișiere de filtrare.

SUCKKILLFILE și „KEEP/KILLFILES” GRUP
Dacă există suckkillfile, antetele tuturor articolelor vor fi scanate și articolul va fi descărcat sau nu, pe baza parametrilor din fișiere. Dacă nu este specificată nicio opțiune de jurnalizare (a se vedea opțiunile „-L” de mai sus), atunci este utilizată opțiunea de jurnalizare lungă.

Liniile de comentarii sunt permise în „killfiles” (fișierele de filtrare). O linie de comentariu are un „#” în prima poziție. Tot ceea ce se află pe o linie de comentariu este ignorat.

Iată cum funcționează întregul pachet „keep/delete” (păstrează/șterge). Toate articolele sunt verificate în raport cu fișierul principal de eliminare (suckkillfile). Dacă un articol nu este eliminat de fișierul principal de eliminare, atunci linia sa de grup este analizată. Dacă există un fișier de grup pentru unul dintre grupuri, atunci articolul este comparat cu fișierul de grup respectiv. Dacă se potrivește cu un fișier keep, atunci este păstrat, altfel este marcat pentru ștergere. Dacă corespunde unui fișier de ștergere, atunci este marcat pentru ștergere, altfel este păstrat. Acest lucru se face pentru fiecare grup de pe linia grupului.

OBSERVAȚII: Cu excepția parametrului USE_EXTENDED_REGEX, niciunul dintre acești parametri nu este pasat de la fișierul de filtrare principal la fișierul de grup individual. Fiecare fișier de filtrare este separat și independent. De asemenea, fiecare căutare este insensibilă la majuscule, cu excepția cazului în care se specifică în mod specific prin începerea șirului de căutare cu caracterul QUOTE (a se vedea mai jos). Cu toate acestea, partea de parametri a expresiei de căutare (partea LOWLINE=, HILINE=) este sensibilă la majuscule.

PARAMETRI
    LOWLINES=#######
    HILINES=#######
    NRGRPS=####
    NRXREF=####
    QUOTE=c
    NON_REGEX=c
    GROUP=keep nume-grup nume-fișier SAU GROUP=delete nume-grup nume-fișier
    PROGRAM=nume-rută
    PERL=nume-rută
    TIEBREAKER_DELETE
    GROUP_OVERRIDE_MASTER
    USE_EXTENDED_REGEX
    XOVER_LOG_LONG
    HEADER:
    Orice linie de antet valabilă:
    BODY:
    BODYSIZE>
    BODYSIZE<

Toți parametrii sunt valabili atât în fișierul kill principal, cât și în fișierele de grup, cu excepția parametrilor GROUP, PROGRAM, PERL, TIEBREAKER_DELETE și GROUP_OVERRIDE_MASTER. Aceștia sunt valabili numai în fișierul kill principal.

Parametrii fișierelor KILL/KEEP

HILINES= Selectează orice articol mai lung decât numărul de rânduri specificat.

LOWLINES= Selectează orice articol mai scurt decât numărul de rânduri specificat.

NRGRPS= Această linie se va potrivi oricărui articol care are mai multe grupuri decât numărul specificat pe linia Newsgroups:. De obicei, acest lucru este utilizat într-un fișier de filtrare pentru a preveni articolele „spamate”; (un articol „spamat” este unul care este postat în multe grupuri, cum ar fi acele scheme de „îmbogățire rapidă” etc.)

NRXREF= Această linie va potrivi orice articol care are mai multe grupuri decât numărul specificat pe linia Xref:. Acesta este un alt spamm stopper. AVERTISMENT: linia Xref: nu este la fel de precisă ca linia Newsgroups:, deoarece conține numai grupurile cunoscute de serverul de știri. Această opțiune este foarte utilă într-un fișier de filtrare xover, deoarece în Xoverviews nu se furnizează de obicei linia Newsgroups:, dar se furnizează linia Xref:.

HEADER: Orice linie de antet validă: Suck vă permite să scanați orice linie de antet pentru un anumit model/șir de caractere, sau puteți scana întregul antet al articolului. Pentru a scana o linie individuală, trebuie doar să o specificați, de exemplu, pentru a scana linia From pentru boby@pixi.com, ar trebui să introduceți

    From:boby@pixi.com

Rețineți că linia de antet corespunde EXACT cu ceea ce este conținut în articol. Pentru a scana linia Followup-To:, pur și simplu puneți Pentru a căuta pe aceeași linie de antet mai multe elemente de căutare, fiecare element de căutare trebuie să fie pe o linie separată, de ex:
    From:boby@xxx
    From:nerd@yyy
    Subject:suck
    Subject:help
Parametrul HEADER: este un caz special al celor de mai sus Dacă utilizați parametrul HEADER:, atunci elementul este căutat în întregul antet. Sunt permise mai multe linii HEADER: în fiecare fișier de filtrare.

Atunci când suck caută modelul, caută doar ceea ce urmează după :, iar spațiile care urmează după : sunt semnificative. Cu exemplul de mai sus „Subject:suck”, vom căuta șirul „suck” în linia de antet Subject. Dacă exemplul ar fi spus „Subject: suck”, suck ar fi căutat șirul „ suck”. Observați spațiul suplimentar.

Dacă sistemul dvs. are rutine regex(), atunci elementele căutate pot fi expresii regulate POSIX, în loc de simple șiruri de caractere. Rețineți că opțiunea QUOTE= se aplică în continuare, chiar și expresiilor regulate.

BODY: Acest parametru vă permite să căutați text în corpul unui articol. Din nou, dacă sistemul dvs. are regex(), puteți utiliza expresii regulate, iar opțiunea QUOTE= este, de asemenea, aplicată. Sunt permise mai multe linii BODY: în fiecare fișier de filtrare. AVERTISMENT: Anumite combinații de expresii regex, în special cele cu .* la început (de exemplu, BODY:.*jpg), în combinație cu articole de mari dimensiuni, pot face ca codul regex să consume cantități masive de CPU, iar suck va părea că nu face nimic.

BODYSIZE> Acest parametru va potrivi un articol dacă dimensiunea corpului său (fără a include antetul) este mai mare decât acest parametru. Dimensiunea este specificată în octeți.

BODYSIZE< Acest parametru va potrivi un articol dacă dimensiunea corpului său este mai mică decât acest parametru. Dimensiunea este specificată în octeți.

QUOTE= Acest element specifică caracterul care definește un șir între ghilimele. Implicit, acesta este ". Dacă un element începe cu caracterul QUOTE, atunci elementul este verificat ca atare (ținând cont de majuscule/minuscule). Dacă un element nu începe cu caracterul QUOTE, atunci elementul este verificat fără a ține seama de majuscule/minuscule.

NON_REGEX= Acest element specifică caracterul care definește un șir non-regex. Valoarea implicită pentru acest caracter este %. Dacă un element începe cu caracterul NON_REGEX, atunci elementul nu este niciodată verificat pentru expresii regulate. Dacă elementul nu începe cu caracterul QUOTE, atunci suck încearcă să determine dacă este o expresie regulată și, dacă este, utilizează regex() pe aceasta. Acest element vă permite să îi spuneți lui suck să trateze șiruri precum „$$$$ MONEY $$$$” ca elemente non-regex. DACĂ utilizați AMÂNDOUĂ caracterele QUOTE și NON_REGEX într-un șir de caractere, caracterul NON_REGEX TREBUIE să apară primul.

GROUP= Această linie vă permite să specificați fie păstrarea, fie ștergerea parametrilor pentru fiecare grup în parte. Această linie are trei părți. Fiecare parte a acestei linii trebuie să fie separată prin exact un spațiu. Prima parte este fie „keep”, fie „delete”. Dacă este „keep”, atunci sunt descărcate numai articolele din grupul respectiv care corespund parametrilor din fișierul de grup. Dacă este „delete”, articolele din grupul respectiv care corespund parametrilor nu sunt descărcate. A doua parte, numele grupului, este numele complet al grupului pentru articolele care urmează să fie comparate cu fișierul grupului. Numele grupului poate conține un * ca ultim caracter, pentru a potrivi mai multe grupuri, de ex: „comp.os.linux.*” s-ar potrivi cu comp.os.linux.announce, comp.os.linux.answers, etc.. A treia parte specifică fișierul de grup care conține parametrii pentru verificarea articolelor. Rețineți că, dacă ați specificat un sufix cu opțiunea „-p”, atunci acest sufix este atașat la numele fișierului atunci când suck îl caută, FĂRĂ a utiliza opțiunea „-k” de mai sus.

GROUP_OVERRIDE_MASTER Aceasta vă permite să treceți peste comportamentul implicit al fișierului principal de eliminare. Dacă această opțiune se află în fișierul principal de filtrare, atunci chiar dacă un articol este marcat pentru eliminare de către fișierul principal de filtrare, acesta este verificat în fișierele de grup. Dacă fișierele de grup spun să nu îl ștergeți, atunci articolul este păstrat.

TIEBREAKER_DELETE Această opțiune vă permite să treceți peste regula implicită de departajare. Există posibilitatea ca un mesaj să fie marcat de un fișier de grup ca fiind păstrat, iar de un alt fișier de grup ca fiind eliminat. Valoarea implicită încorporată este păstrarea mesajului. Opțiunea TIEBREAKER_DELETE va anula acest lucru și va determina ștergerea articolului.

USE_EXTENDED_REGEX Această opțiune îi spune lui suck să utilizeze expresii regulate extinse în locul expresiilor regulate standard. Aceasta poate fi utilizată în fișierul de filtrare principal, caz în care se aplică tuturor fișierelor de filtrare, sau într-un fișier de filtrare individual, caz în care se aplică numai parametrilor care o urmează în fișierul de filtrare.

XOVER_LOG_LONG Această opțiune îi spune lui suck să formateze fișierul de filtrare generat de un fișier de filtrare Xover astfel încât să arate ca un antet de articol. În mod normal, se imprimă doar linia Xover de la server.

PROGRAM= Această linie permite lui suck să apeleze un program extern pentru a verifica fiecare articol. Pe această linie puteți specifica orice argumente în plus față de numele programului. Dacă această linie se află în fișierul suckkillfile, toate celelalte linii sunt ignorate. În schimb, antetele sunt transmise programului extern, iar programul extern determină dacă să descarce sau nu articolul. Iată cum funcționează: suck va redirecționa programul dvs., cu stdin și stdout redirecționate. Suck va trimite antetele către programul dvs. prin stdin și va aștepta un răspuns prin stdout. Iată fluxul de date pentru fiecare articol:

    1. suck va scrie un șir lung de 8 octeți, care reprezintă lungimea înregistrării antetului pe stdin a programului extern. Apoi lungimea este în ascii, este aliniată la stânga și se termină cu o linie nouă (exemplu: „1234 \n”).
    2. suck va scrie apoi antetul pe stdin al programului extern.
    3. suck va aștepta un cod de răspuns de 2 caractere pe stdout. Acest cod de răspuns este fie „0\n”, fie „1\n” (NU BINAR ZERO SAU UNU, ci ASCII ZERO SAU UNU). Dacă codul de răspuns este zero, suck va descărca articolul, dacă este unu, suck nu o va face.
    4. Atunci când nu mai există articole, lungimea notată (pentru pasul 1) va fi zero (din nou în ascii „0 \n”). Suck va aștepta apoi ca programul extern să iasă înainte de a continua. Programul extern poate face orice curățare de care are nevoie, apoi poate ieși. Notă: Suck nu va continua procesarea până când programul extern nu iese.

PERL= Această linie vă permite să apelați un subprogram perl pentru a verifica fiecare articol. Pentru a utiliza această opțiune, trebuie să editați Makefile, în special opțiunile PERL*. Dacă linia PERL= se află în fișierul suckkillfile, toate celelalte linii sunt ignorate. În schimb, antetul este trimis subprogramului dvs. perl, iar subprogramul dvs. determină dacă articolul este descărcat sau nu. Parametrul de pe linia PERL= specifică numele de fișier al rutinei perl, de exemplu:

    PERL=perl_kill.pl

Consultați sample/perl_kill.pl pentru un exemplu de subrutină perl. Există câteva puncte cheie în acest exemplu. „package Embed::Persistant;” trebuie să fie în fișierul perl. Acest lucru este astfel încât orice nume de variabile pe care le creați să nu intre în conflict cu numele variabilelor din suck. În plus, subrutina pe care o definiți trebuie să fie „perl_kill”, cu excepția cazului în care modificați definiția PERL_PACKAGE_SUB din suck_config.h. De asemenea, subrutina dvs. trebuie să returneze exact o valoare, un număr întreg, fie 0, fie 1. Dacă subprogramul returnează 0, atunci articolul este descărcat, altfel, articolul nu este descărcat.

OBSERVAȚII: Fișierul perl este compilat o singură dată, înainte ca articolele să fie descărcate. Acest lucru este menit să prevină întârzierile lungi între articole în timp ce rutina perl este compilată din nou. De asemenea, trebuie să utilizați versiunea Perl 5.003 sau mai recentă. În plus, vă sfătuim să executați „perl -wc filter” ÎNAINTE de a utiliza filtrul, pentru a verifica erorile de sintaxă și a evita problemele.

SUCKXOVER
Dacă fișierul suckxover există, atunci suck utilizează comanda XOVER pentru a obține informații despre articole și a decide dacă să descarce sau nu articolul. Fișierele Xover utilizează aceeași sintaxă ca și fișierele suckkillfiles, dar acceptă un subset de comenzi.

Următoarele comenzi „killfile” (fișier de filtrare) nu sunt acceptate în fișierele suckxover:
    NRGROUPS:
    HEADER:
    BODY:
    TIEBREAKER_DELETE:

Vor fi verificate numai următoarele linii de antet:
    Subject:
    From:
    Message-ID:
    References:

Comportamentul comenzilor de dimensiune ( BODYSIZE>, BODYSIZE<, HILINES și LOWLINES ) specifică dimensiunea totală a articolului (nu doar a corpului) în octeți sau, respectiv, în linii.

Toți ceilalți parametri sunt permiși. Cu toate acestea, dacă utilizați un parametru nevalid, acesta este ignorat în mod silențios.

SUCKXOVER și PROGRAM= sau PERL= parametri
Acești parametri sunt acceptați într-un fișier suckxover, însă funcționează ușor diferit față de cel descris mai sus. Diferența esențială este că, înainte de a trimite fiecare linie xoverview individuală către programul dumneavoastră, suck vă va trimite lista overview.fmt pe care o recuperează de pe server. Acest overview.fmt este o linie separată prin tabulatoare, care descrie câmpurile din fiecare linie overview.fmt.

Pentru parametrul PROGRAM=, suck va trimite mai întâi programului dvs. un șir lung de 8 octeți, care este lungimea fișierului overview.fmt. Această lungime este formatată ca lungimile de mai sus (a se vedea nr. 1 la PROGRAM=). Suck va trimite apoi overview.fmt. După aceea, fluxul este cel descris mai sus. Consultați sample/killxover_child.c pentru un exemplu.

Pentru parametrul PERL=, programul dvs. trebuie să aibă două subrutine. Prima este perl_overview, care va primi overview.fmt și nu va returna nimic. A doua subrutină este perl_xover, care va primi linia xoverview și va returna 0 sau 1, după cum se descrie în PERL= de mai sus. Consultați sample/perl_xover.pl pentru un exemplu.

SUCKOTHERMSGS
Dacă suckothermsgs există, acesta trebuie să conțină linii formatate într-unul din cele trei moduri. Primul mod este o linie care conține un ID al mesajului, cu <> inclus, de exemplu:

      <12345@gazdă-oarecare.com>

Aceasta va determina preluarea articolului cu acel Message-ID.

Al doilea mod este de a pune numele grupului și numărul articolului pe o linie care începe cu un !, de exemplu:
      !comp.os.linux.announce 1

Aceasta va determina descărcarea articolului respectiv.

De asemenea, puteți obține un grup de articole dintr-un grup utilizând următoarea sintaxă:
      !comp.os.linux.announce 1-10

Indiferent de metoda pe care o utilizați, dacă articolul specificat există, acesta va fi descărcat, în plus față de orice articole preluate prin sucknewsrc. Aceste metode pot fi utilizate pentru a obține un anumit articol în alte grupuri sau pentru a descărca un articol care a fost exclus e către filtru. Aceste articole ARE NOT prelucrate prin rutinele de filtrare a articolelor.

SUCKNODOWNLOAD
Dacă sucknodownload există, acesta trebuie să fie format din linii care conțin un Message-ID, cu <> inclus, de exemplu:

      <12345@gazdă-oarecare.com>

Acest lucru va face ca articolul cu ID-ul mesajului respectiv să nu fie descărcat NICIODATĂ. Message-ID trebuie să înceapă în prima coloană a liniei (fără spații anterioare). Acest fișier prevalează asupra suckothermsgs, astfel încât, dacă un articol se află în ambele, acesta nu va fi descărcat.

POST FILTRU
dacă opțiunea -y post_filter este specificată pe linia de comandă împreună cu oricare dintre modurile pe loturi, atunci suck va apela post-filtrul specificat, după descărcarea articolelor și înainte de gruparea/punerea pe loturi a articolelor. Filtrului i se transmite directorul în care sunt stocate articolele (opțiunea „-dm”). Programul de filtrare este responsabil de analizarea conținutului directorului. Consultați sample/post_filter.pl pentru un exemplu de post-filtru. Această opțiune a fost concepută pentru a vă permite să adăugați propriul nume de gazdă la antetul Path:, dar dacă trebuie să faceți orice altceva cu mesajele, o puteți face.

FRAZE ÎN LIMBI STRĂINE
Dacă opțiunea -l phrases este specificată sau fișierul /usr/local/lib/suck.phrases (definit în suck_config.h) există, atunci suck va încărca un fișier de fraze într-o limbă alternativă și îl va utiliza pentru toate mesajele de stare și eroare, în locul celor implicite încorporate. Linia de comandă prevalează asupra valorilor implicite încorporate, dacă ambele sunt prezente. Fișierul phrase conține toate mesajele utilizate de suck, rpost, testhost și lmove, fiecare pe o linie separată și între ghilimele. Pentru a genera un exemplu de fișier phrases, executați make phrases din linia de comandă. Se va crea „phrases.engl”, care este o listă a frazelor implicite. Pur și simplu editați acest fișier, schimbând frazele în limba engleză în limba dorită, având grijă să păstrați frazele între ghilimele. Aceste fraze pot conține variabile pentru imprimarea elementelor furnizate de program, cum ar fi numele de gazdă. Variabilele sunt desemnate prin %vN%, unde N este o secvență de unu în sus pentru fiecare frază. Aceste variabile pot exista în orice ordine pe linia frazei, de exemplu,
    "Salut, %v1%, bine ați venit la %v2%"     sau
    "Bine ați venit la %v2%, %v1%"
sunt amândouă fraze valide. Frazele pot conține \n, \r sau \t pentru a imprima o linie nouă, un retur de cărucior, respectiv o tabulație. Rețineți că prima linie a fișierului de fraze este numărul versiunii curente. Acesta este comparat cu versiunea suck care rulează, pentru a fi siguri că fișierul de fraze este în versiunea corectă.

Dacă modificați codul sursă și adăugați fraze noi, va trebui să regenerați phrases.h, astfel încât totul să funcționeze corect. Pentru a recrea, trebuie doar să executați make phrases.h din linia de comandă.

GESTIONAREA SEMNALELOR
Suck acceptă două semnale, definite în suck_config.h. Primul semnal (implicit SIGTERM) va determina suck să finalizeze descărcarea articolului curent, să stocheze toate articolele descărcate și să iasă, fără eroare.

Al doilea semnal (implicit SIGUSR1) va determina suck să utilizeze valorile de pauză definite cu opțiunea „-w” (a se vedea mai sus).

CODURI DE IEȘIRE
Suck va ieși cu următoarele coduri de returnare:
    0 = succes
    1 = nu există articole disponibile pentru descărcare.
    2 = suck a primit un răspuns neașteptat la o comandă emisă către serverul de la distanță.
    3 = a fost utilizată opțiunea „-V”.
    4 = suck nu a putut efectua autorizarea NNTP cu serverul de la distanță.
    -1 = eroare generală.

ISTORIC
    Autor original - Tim Smith (adresă necunoscută)
    Responsabilii -
    Martie 1995 - Sven Goldt (goldt@math.tu-berlin.de)
    Iulie 1995 - Robert A. Yetman (boby@pixi.com)

CONSULTAȚI ȘI
testhost(1), rpost(1), lpost(1).

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.