innd

Autres langues

Langue: pl

Autres versions - même langue

Version: 55802 (openSuse - 09/10/07)

Section: 8 (Commandes administrateur)

NAZWA

innd, inndstart - InterNetNews daemon

SK£ADNIA

innd [ -a ] [ -c dni ] [ -C ] [ -d ] [ -f ] [ -H licznik ] [ -i licznik ] [ -Iadres_IP ] [ -l rozmiar ] [ -m tryb ] [ -n flaga ] [ -o licznik ] [ -pfd_des ] [ -Pport ] [ -r ] [ -s ] [ -t opó¼nienie ] [ -T licznik ] [ -u ] [ -X sekundy ] [ -Z ]

inndstart [ flagi ]

OPIS

Innd, który jest demonem news (InterNetNews), obs³uguje wszystkie nadchodz±ce feedy. Najpierw wczytuje do pamiêci pliki active(5), newsfeeds(5) i incoming.conf(5). Potem otwiera port NNTP do odbierania artyku³ów ze zdalnych stacji (zobacz opcjê ``-p''). Je¶li w include/config.h zdefiniowano HAVE_UNIX_DOMAIN_SOCKETS, to do odbioru artyku³ów od lokalnych procesów, takich jak nnrpd(8) i rnews(1) otwierane jest gniazdo strumieniowe dziedziny Uniksowej, a dla ctlinnd(8) odwierane jest analogiczne gniazdo datagramowe. Gdy makro to nie jest zdefiniowane, u¿ywane s± ³±cza nazwane. Ctlinnd(8) wykorzystywany jest do przekazywania serwerowi poleceñ wykonania okre¶lonych akcji. Otwiera równie¿ bazê history(5) i dwa pliki raportowe, zastêpuj±ce jego standardowe wyj¶cie i wyj¶cie b³êdu.

Po otwarciu wszystkich plików i gniazd, innd oczekuje na po³±czenia i dane na swoich portach, u¿ywaj±c do tego select(2) i nieblokuj±cego I/O. Je¶li nie ma dostêpnych danych, to wypró¿ni on swoje wewn±trzrdzeniowe struktury danych. Domy¶lna liczba sekund opó¼nienia przed wypró¿nieniem jest ustawiana jako <DEFAULT_TIMEOUT w config.data> (zwykle 300) sekund.

Je¶li innd otrzyma b³±d ENOSPC (zobacz intro(2)) podczas zapisu pliku active, pliku article lub bazy historii, to wy¶le do siebie komendê ``throttle''. Stanie siê tak równie¿, je¶li otrzyma zbyt wiele b³êdów wej¶cia-wyj¶cia podczas zapisu do jakiego¶ pliku.

Niektóre parametry ustawiane w inn.conf(5) mog± byæ równie¿ podane w linii poleceñ innd. W tym wypadku, opcje z inn.conf(5) bêd± nadpisane przez opcje linii poleceñ.

OPCJE

-a
Domy¶lnie, je¶li host nie jest wymieniony w pliku incoming.conf to po³±czenie jest przekazywane do nnrpd. Po u¿yciu tej flagi dowolny host mo¿e siê pod³±czyæ i przesy³aæ artyku³y.
-c
innd odrzuca stare artyku³y. Zasadniczo zachowanie to mo¿e byæ sterowane przez bazê historii, lecz czasem stacja wyrzuca w sieæ paczkê bardzo starych artyku³ów. Flaga ``'' okre¶la przedzia³ czasu. Na przyk³ad ``-c21''odrzuca wszelkie artyku³y, wys³ane dawniej ni¿ 21 dni temu. Warto¶æ zerowa powstrzymuje ten test. Domy¶ln± warto¶ci± jest 14 dni, lecz mo¿na to zmieniæ opcj± ``artcutoff'' w inn.conf(5)
-C
Je¶li u¿yta jest flaga ``-C'', to innd przyjmie i przesy³a dalej, ale nie przetwarza wiadomo¶ci anulowania i powstrzymania. Jest to przeznaczone dla stacji, w których nadu¿ywane s± anulowania i które wybieraj± mechanizm z lepsz± autoryzacj±.
-d -f
Innd normalnie przechodzi w t³o, ustawia standardowe wyj¶cia na pliki raportowe i od³±cza siê od terminala. Po u¿yciu flagi ``-d'' serwer tego nie robi, a po u¿yciu flagi ``-f'', serwer pozostaje na pierwszym planie.
-H -T -X
Flagi ``-H'', ``-T'' i ``-X'' steruj± liczb± po³±czeñ dozwolonych na minutê. Ma to w za³o¿eniach dzia³aæ jako ochrona serwera przed czytnikami, które wykonuj± w ci±gu minuty zbyt wiele po³±czeñ z serwerem. Zazwyczaj nie u¿ywa siê tego, chyba ¿e rzeczywi¶cie pojawia siê jaki¶ problem. Tablica u¿ywana do tych sprawdzeñ jest ograniczona do 128 wpisów i jest u¿ywana jako pier¶cieñ (ring). Rozmiar zosta³ wybrany do u³atwienia obliczania indeksu i do upewnienia siê, ¿e nie zabraknie ci miejsca. Praktycznie wydaje siê w±tpliwe, ¿eby¶ wykorzysta³ nawet po³owê tablicy naraz.
Flaga ``-H'' okre¶la maksymaln± liczbê po³±czeñ pochodz±cych z danego hosta z serwerem podczas ``-X'' sekund. Domy¶lnie 2.
Flaga ``-T'' ogranicza ca³kowit± liczbê nadchodz±cych po³±czeñ innda w okresie ``-X'' sekund. Maksymaln± warto¶ci± jest 128. Domy¶ln± 60.
Flaga ``-X'' ustawia liczbê sekund, u¿ywan± przez ``-H'' i ``-T''. Warto¶æ zerowa wy³±cza sprawdzanie. Domy¶lnie jest 0.
-i
Flaga ``-i'' ogranicza liczbê nadchodz±cych po³±czeñ NNTP. Warto¶æ zerowa wy³±cza to sprawdzenie. Domy¶ln± warto¶ci±, je¶li w inn.conf(5) nie podano opcji ``maxconnections'' jest 50. Wymieniona opcja jest zastêpowana warto¶ci± tej opcji.
-I
Opcja ta umo¿liwia wi±zanie innda do podanego adresu interfejsu IP. Adres IP musi byæ w postaci kropkowej czwórki liczb (nnn.nnn.nnn.nnn). Zobacz te¿ opcjê ``bindaddress'' w inn.conf(5).
-l
Flaga ``-l'' ogranicza rozmiar artyku³u. Po u¿yciu tej flagi, wszystkie artyku³y wiêksze ni¿ rozmiar bajtów bêd± odrzucane. Domy¶ln± warto¶ci± jest 1000000L bajtów. Sprawdzanie mo¿na wy³±czyæ, u¿ywaj±c warto¶ci zerowej. Patrz tak¿e opcje ``maxartsize'' i ``localmaxartsize'' w inn.conf(5).
-m
Flaga ``-m'' s³u¿y do uruchamiania serwera w zatrzymanym lub st³umionym stanie (zobacz ctlinnd(8)). Argument rozpoczyna siê pojedyncz± liter±: g, p lub t, wskazuj±ce odpowiednio na ``go'' (startuj), ``pause'' (zatrzymaj) lub ``throttle'' (st³um).
-n
Flaga ``-n'' okre¶la czy pauzowanie lub st³umienie serwera powinno równie¿ wy³±czyæ przysz³e procesy czytnikowe. Warto¶æ ``y'' powoduje, ¿e czytniki zachowuj± siê jak serwer, a warto¶æ ``n'' umo¿liwia czytanie, nawet gdy serwer nie pracuje. Domy¶lnie zezwala siê na czytanie, a zmieniæ mo¿na to opcj± ``readerswhenstopped'' w inn.conf(5).
-o
Flaga ``-o'' s³u¿y ograniczaniu liczby plików, które s± utrzymywane otwarte dla wychodz±cych feedów plikowych. Domy¶ln± warto¶ci± jest liczba dostêpnych deskryptorów minus czê¶æ zarezerwowana do u¿ytku wewnêtrznego.
-p
Po u¿yciu flagi ``-p'' przyjmuje siê, ¿e port NNTP jest otwierany na podanym deskryptorze. (Je¶li u¿yta jest ta flaga, to innd zak³ada, ¿e pracuje z w³a¶ciwymi uprawnieniami i nie bêdzie wo³a³ chown(2) na ¿adnych z tworzonych plików lub katalogów.)
-P
Je¶li u¿yta jest flaga ``-P'', to podany port jest u¿ywany do nas³uchiwania po³±czeñ. innd musi mieæ wystarczaj±ce uprawnienia startowe by otworzyæ podany port.
-r
Je¶li u¿yta jest flaga ``-r'', serwer przenumeruje plik active zupe³nie tak, jak po wys³aniu komendy ``renumber''.
-s
Je¶li u¿yta jest flaga ``-s'', to innd nic nie bêdzie robiæ, lecz tylko sprawdzi sk³adniê pliku newsfeeds. Je¶li bêd± tam b³êdy, to zg³osi kod b³êdu; rzeczywiste b³êdy bêd± natomiast zg³oszone w syslog(3).
-t
Zmienia czas opó¼nienia przed wypró¿nieniem do timeout sekund.
-u
Raporty s± normalnie buforowane; flaga ta wy³±cza to zachowanie.

Inndstart jest ma³ym programem typu front-end, który otwiera port NNTP, ustawia uid i gid na opiekuna news, a nastêpnie uruchamia demona innd z flag± ``-p'' i minimalnym bezpiecznym ¶rodowiskiem. Jest to ma³y front-end dla stacji, która nie chce uruchamiaæ innd z uprawnieniami roota.

KOMUNIKATY STERUJ¡CE

Artyku³y przychodz±ce, maj±ce nag³ówek Control s± nazywane komunikatami steruj±cymi. Poza komunikatem anulowania, s± one zaimplementowane przez zewnêtrzne programy w katalogu <pathcontrol w inn.conf> o ile <usecontrolchan w inn.conf> jest ustawione na ``false''. (Komunikaty anulowania (cancel) od¶wie¿aj± bazê historii, wiêc musz± byæ obs³ugiwane wewnêtrznie; koszt synchronizowania, blokowania i odblokowywania by³by zbyt wysoki przy odbiorze wielu takich komunikatów.)

Gdy nadchodzi komunikat steruj±cy, pierwsze s³owo tekstu jest konwertowane na ma³e litery i jest u¿ywane jako nazwa uruchamianego programu. Je¶li program nie istnieje, wywo³ywany jest domy¶lny program, okre¶lony przez <pathcontrol w inn.conf>/default.

Wszystkie programy steruj±ce s± wywo³ywane z czterema parametrami. Pierwszym jest adres nadawcy komunikatu; jest to pobierane z nag³ówka Sender. Je¶li nag³ówek ten jest pusty, to dane s± pobierane z nag³ówka From. Nastêpnym parametrem jest adres zwrotny replik; pobierany z nag³ówka Reply-To. Je¶li nag³ówek ten jest pusty, u¿yty zostanie adres nadawcy. Trzecim parametrem bêdzie nazwa pliku, w którym znajduje siê artyku³ wzglêdem katalogu sk³adowego news. Czwartym parametrem jest host, który wys³a³ artyku³. Jest to odczytywane z linii Path.

Je¶li <usecontrolchan w inn.conf> jest ustawione na ``true'', to ¿aden komunikat steruj±cy nie bêdzie przetwarzany przez program zewnêtrzny, forkowany przez innda. Zamiast tego, bêdzie przetwarzany przez skrypt controlchan, który jest wywo³ywany jako program kana³owy innda. Musisz do u¿ywania tego skryptu skonfigurowaæ newsfeeds(5). Przetwarzanie z u¿yciem controlchan mo¿e zredukowaæ nadmierne obci±¿enie, je¶li zbyt wiele komunikatów steruj±cych pojawia siê naraz.

Dystrybucja komunikatu steruj±cego jest odmienna od dystrybucji standardowych artyku³ów.

Komunikaty steruj±ce normalnie wpadaj± do grupy dyskusyjnej control. Mog± one byæ zapisywane w podgrupach, lecz w oparciu o polecenie komunikatu steruj±cego. Na przyk³ad komunikat newgroup mo¿e byæ zapisany w grupie control.newgroup lub w ogólnym control, je¶li specjalizowana podgrupa nie istnieje.

Stacje mog± jawnie udostêpniaæ grupê ``control'' w ich listach zapisowych, lecz zwykle lepiej jest j± wy³±czyæ. Je¶li komunikat steruj±cy jest wysy³any na grupê, której nazwa koñczy siê czterema znakami ``.ctl'', to przyrostek jest obcinany, a to co pozostanie jest u¿ywane jako nazwa grupy. Na przyk³ad komunikat anuluj±cy, wys³any na ``news.admin.ctl'' zostanie przes³any do wszystkich stacji zapisanych na grupy ``control'' lub ``news.admin''. Wiadomo¶ci newgroup lub rmgroup wymagaj± dodatkowego specjalnego traktowania. Je¿eli wiadomo¶æ jest zaakceptowana i zosta³a wys³ana do tworzonej lub usuwanej grupy, to ta wiadomo¶æ zostanie przes³ana do wszystkich serwerów, których wzorce subskrypcji grup pozwoli³yby na odebranie wiadomo¶ci wysy³anych do tej grupy.

Je¶li <mergetogroups w inn.conf> jest ustawione na ``true'', to gdy artyku³ jest wysy³any na grupê, która rozpoczyna siê trzema literami ``to.'', to zostanie potraktowany specjalnie, je¶li grupa ta nie istnieje w pliku active: artuku³ jest sk³adowany do grupy ``to'' i jest wysy³any do pierwszej stacji, nazwanej po przedrostku. Na przyk³ad, wysy³anie do ``to.uunet'' zostanie z³o¿one do ``to'' i przes³ane do stacji ``uunet''. file:

RÓ¯NICE PROTOKO£U

Innd implementuje komendy NNTP zdefiniowane w RFC 977 z nastêpuj±cymi odstêpstwami:
1.
Za ``list'' mo¿e wystêpowaæ dodatkowo argument ``active'', ``active.times'', ``newsgroups'' lub ``subscription''. Jest to popularne rozszerzenie, lecz nie w pe³ni obs³ugiwane; zobacz nnrpd(8).
2.
Zaimplementowane s± komendy ``authinfo user'' oraz ``authinfo pass''. Zobacz draft-barber-nntp-imp-07.txt dla dalszych szczegó³ów.
3.
Udostêpniona jest nowa komenda, ``mode reader''. Komenda ta powoduje, ¿e serwer przekazuje po³±czenie do nnrpd. Komenda ``mode query'' przeznaczona jest dla przysz³ych zastosowañ i obecnie jest traktowana tak samo.
4.
Udostêpnione s± komendy wspieraj±ce transfer strumieniowy: ``check messageid'' i ``takethis messageid''.
5.
Udostêpniona jest komenda transferu wsadowego ``xbatch liczba-bajtów''. Komenda ta odczyta liczbê-bajtów bajtów i zapisze je dla dalszego przetwarzania przez rnews(1) (który nale¿y uruchomiæ oddzielnie). Obejrzyj programy innxbatch i sendxbatches.sh.
6.
Pozosta³ymi zaimplementowanymi komendami s± ``head'' , ``help'' , ``ihave'' , ``quit'' oraz ``stat''.

MODYFIKACJE NAG£ÓWKÓW

Innd modyfikuje tak ma³o nag³ówków, jak tylko siê da, lecz móg³by byæ lepszy.

Oto lista nag³ówków, które je¶li istniej±, s± usuwane:


Date-Received

Posted

Posting-Version

Received

Relay-Version

Puste nag³ówki oraz nag³ówki sk³adaj±ce siê z bia³ych spacji równie¿ s± opuszczane.

Do nag³ówka Path doklejana jest nazwa lokalnej stacji (okre¶lanej przez warto¶æ ``pathhost'' w inn.conf(5)) i wyrzyknik (je¶li nazwa pierwszej stacji nag³ówka ró¿ni siê od lokalnej).

Nag³ówek Xref jest usuwany i tworzony jest nowy.

W przypadku nieobecno¶ci, nag³ówek Lines jest dodawany.

Innd nie przepisuje nieprawid³owych nag³ówków. Na przyk³ad nie bêdzie zmieniaæ nieprawid³owego nag³ówka Lines, ale odrzuci artyku³.

RAPORTOWANIE

Innd raportuje wszystkie nadchodz±ce artyku³y do pliku raportowego. Jest to plik tekstowy o zmiennej ilo¶ci rozdzielanych spacjami pól o jednym z nastêpuj±cych formatów:

mon dd hh:mm:ss.mmm + feed <Message-ID> stacja...

mon dd hh:mm:ss.mmm j feed <Message-ID> stacja...

mon dd hh:mm:ss.mmm c feed <Message-ID> stacja...

mon dd hh:mm:ss.mmm - feed <Message-ID> powód...

mon dd hh:mm:ss.mmm ? feed <Message-ID> powód...

Po polu Message-ID mo¿e byæ równie¿ pole nazwy hosta i rozmiaru, zale¿nie od opcji ``nntplinklog'' i ``logsize'' z inn.conf(5).

Pierwsze trzy pola s± polami daty i czasu w rozdzielczo¶ci milisekundowej. Pi±te pole jest stacj±, która wys³a³a artyku³ (odczytywane z nag³ówka Path). Szóste pole jest identyfikatorem artyku³u; je¶li informacja jest niedostêpna, pojawi siê w jej miejscu pytajnik.

Czwarte pole okre¶la czy artyku³ zosta³ przyjêty czy nie. Je¶li jest tam znak plus, to zosta³ przyjêty. Je¶li ``j'', to zosta³ przyjêty, lecz wszystkie grupy maj± w swoich rekordach active ``j'', wiêc artyku³ zosta³ z³o¿ony do grupy ``junk''. Je¶li w polu pojawi³a siê litera ``c'', to przed pojawieniem siê oryginalnego artyku³u odebrany zosta³ komunikat anuluj±cy. We wszystkich tych przypadkach artyku³ zosta³ przyjêty i pole ``stacja...'' zawiera rozdzielon± spacjami listê stacji, do których artyku³ jest przesy³any.

Je¶li czwarte pole zawiera znak minusa, o artyku³ zosta³ odrzucony. Powodami odrzucenia mog± byæ:


"%s" header too long (za d³ugi nag³ówek)

"%s" wants to cancel <%s> by "%s" ("%s" chce anulowaæ <%c> poprzez "%s")

Article exceeds local limit of %s bytes (Artyku³ przekracza lokalny 

                                         limit %s bajtów)

Article posted in the future -- "%s" (Artyku³ wys³any w przysz³o¶ci -- "%s")

Bad "%s" header (Z³y nag³ówek "%s")

Can't write history (Nie mogê zapisaæ historii)

Duplicate (Duplikat)

Duplicate "%s" header (Zduplikowany nag³ówek "%s")

EOF in headers (EOF w nag³ówkach)

Linecount %s != %s +- %s (Liczba linii %s != %s +- %s)

Missing %s header (Brak nag³ówka %s)

No body (Brak cia³a)

No colon-space in "%s" header (Brak dwukropka-spacji w nag³ówku "%s")

No space (Brak spacji (albo miejsca???))

Space before colon in "%s" header (Spacja przed dwukropkiem w nag³ówku "%s")

Too old -- "%s" (Za stare -- "%s")

Unapproved for "%s" (Niezatwierdzone dla "%s")

Unwanted newsgroup "%s" (Niechciana grupa dyskusyjna "%s")

Unwanted distribution "%s" (Niechciana dystrybucja "%s")

Whitespace in "Newsgroups" header -- "%s" (Bia³a spacja w nag³ówku

                                           "Newsgroups" -- "%s")

Gdzie ``%s'' jest podmieniane przez konretniejsze informacje.

Je¿eli w czwartym polu wyst±pi znak ``?'', oznzcza to, ¿e atyku³ zawiera dziwne ³añcuchy znaków, tj. CR bez LF lub LF bez CR. Te znaki s± u¿ywane razem ``CRLF'', co oznacza koniec linii. Obecnie taka informacja w logu oznacza dziwno¶æ tego artyku³u, ale innd nigdy nie odrzuca artyku³u z tego powodu.

Zauwa¿, ¿e je¶li artyku³ jest przyjêty i <wanttrash w inn.conf> jest ustawione na ``yes'' i ¿adna z grup nie jest odpowiednia, to zostanie zraportowany w dwóch liniach: w linii ``j'' i ``-''.

Innd zg³asza te¿ obszerne raporty poprzez sysloga. Pierwsze s³owo komunikatu raportowego bêdzie: nazw± stacji, je¶li wpis jest dla niej specyficzny (np. komunikat ``connected''); s³owem ``SERVER'', je¶li komunikat jest zwi±zany z serwerem, np. gdy pojawi siê b³±d odczytu.

Je¶li drugim s³owem s± cztery litery ``cant'', to zg³aszany jest b³±d. W tym przypadku nastêpne dwa s³owa ogólnie nazywaj± wywo³anie systemowe lub funkcjê biblioteczn±, która siê nie powiod³a oraz obiekt, wokó³ którego wykonywane by³y dzia³ania. Reszta linii mo¿e zawieraæ inne informacje.

W innych przypadkach, drugie s³owa okre¶la rodzaj zmiany, a reszta linii u¶ci¶la tê informacjê. S³owo ``internal'' ogólnie oznacza wewnêtrzny b³±d logiczny.

SYGNA£Y

Innd przechwytuje sygna³y SIGTERM i SIGDANGER i wy³±cza siê po nich. Je¶li u¿yta jest flaga ``-d'', przechwytywany bêdzie równie¿ SIGINT i bêdzie dzia³a³ analogicznie.

Innd przechwytuje sygna³ SIGUSR1 i odtwarza kana³ steruj±cy, wykorzystywany normalnie przez ctlinnd(8).

HISTORIA

Napisane przez Richa $alza <rsalz@uunet.uu.net> dla InterNetNews. Jest to rewizja 1.24.2.4, z dnia 2000/08/20.

ZOBACZ TAK¯E

active(5), ctlinnd(8), dbz(3), history(5), incoming.conf(5), inn.conf(5), newsfeeds(5), nnrpd(8), rnews(1), syslog(8).