  Newsy-Minimum
  Kenneth M. Lewis, Jr., <kent@fiona.umsmed.edu>
  v?, 25 maja 1995
  WWeerrssjjaa ppoollsskkaa:: TToommaasszz ''ttssccaa'' SSiieenniicckkii,, <<ttssccaa@@eeddbb..ddkk>>
  v1.02, 13 grudnia 2001


  Dokument opisuje uycie serwera INN do obsugi niewielkiej iloci grup
  dyskusyjnych off-line.
  ______________________________________________________________________

  Spis treci


  1. O dokumencie

     1.1 Aktualny status dokumentu
     1.2 Prawa autorskie

  2. Wstp

  3. Opis sytemu ,,Newsy-Minimum''

     3.1 Wymagania
     3.2 Instalacja i rozruch
     3.3 Sposb uycia

  4. Podzikowania...

  5. Od tumacza

     5.1 Inne rda informacji
     5.2 O tumaczeniu


  ______________________________________________________________________

  11..  OO ddookkuummeenncciiee

  11..11..  AAkkttuuaallnnyy ssttaattuuss ddookkuummeennttuu

  _(_S_t_a_n _n_a _d_z_i_e_ _1_4_._1_0_._1_9_9_7_)
  Dokument _N_e_w_s_y_-_M_i_n_i_m_u_m nie jest ju aktualizowany przez autora. Jeli
  chciaby podj si opieki nad tym dokumentem, skontaktuj si z
  <tjbynum@metalab.unc.edu>.


  11..22..  PPrraawwaa aauuttoorrsskkiiee

  Copyright (c) May 25, 1995 Kent Lewis (Kenneth M. Lewis, Jr.)

  Jeli dokument ten zostanie zaakceptowany przez Linux Documentation
  Project, wolno bdzie rozpowszechnia go zgodnie z zasadami opisanymi
  w LDP HOWTO z zastrzeeniem, e autor chciaby przejrze ostateczn
  form niniejszego dokumentu przed wczeniem go do ww. zasobw.

  22..  WWssttpp

  Uywam Linuksa, a z sieci cz si za pomoc modemu. Do niedawna
  musiaem utrzymywa stae poczenie z sieci aby mc czyta grupy
  dyskusyjne. Nie mog jednak zbyt dugo pozostawa on-line -- korzystam
  z usug odlegego dostawcy cza, za czas on-line pac wic stawki
  midzymiastowe; oznacza to wysokie rachunki telefoniczne. Dlatego
  zaczem si zastanawia nad zminimalizowaniem kosztw dostpu do
  sieci bez utraty korzyci z tego dostpu pyncych. Sposb taki
  znalazem; mam nadziej, e przyda si on rwnie innym.
  Dokument niniejszy opisuje jak uywa INNa z niewielkim tylko zestawem
  grup.  Za pomoc prostego skryptu perlowego artykuy s jednoczenie
  cigane i wysyane podczas krtko trwajcego poczenia z sieci.
  Cao jest w wersji ,,alfa'' -- jeli pojawi si nie opisane tu
  problemy, bdziesz musia sam sobie z nimi poradzi.

  33..  OOppiiss ssyytteemmuu ,,,,NNeewwssyy--MMiinniimmuumm''''

  33..11..  WWyymmaaggaanniiaa

  Musisz mie dostp do serwera news (NNTP). eby sprawdzi, czy moesz
  z danego serwera czyta grupy i na nie pisa, sprawd programem telnet
  port 119 tego serwera -- pojawi si informacja na temat Twoich
  uprawnie. Jeli ju uywasz danego serwera, to wiesz, e dostp masz
  -- w takim wypadku nie ma co sprawdza. :-) Natomiast jeli dostpu
  nie masz, postaraj si o niego przed przeczytaniem reszty niniejszego
  dokumentu.

  Musisz mie wystarczajc ilo miejsca na twardym dysku na
  skadowanie artykuw. Moja linuksowa partycja ma 300 MB, a dwudniowy
  urobek okoo pitnastu grup zajmuje wg. df zaledwie od 1 do 2%
  pojemnoci dysku. Na wszelki jednak wypadek najlepiej zacz od
  niewielkiej iloci grup i sukcesywnie dodawa kolejne.

  Potrzebujesz Perla i INNa. Jeli ich nie masz, cignij je z
  <ftp://sunsite.unc.edu> (lub ktrego z mirrorw).  Perla
  prawdopodobnie znajdziesz w katalogu /pub/Linux/devel/perl, a INNa w
  /pub/Linux/system/Mail/news.

  Jeli jeszcze tego nie zrobie, zainstaluj te dwa programy. Ja
  swojego INNa wziem z dystrybucji Slackware 2.2. Doczona
  dokumentacja bya bardzo dobra, po zapoznaniu si z ni nie powiniene
  mie problemu z instalacj. Perl, ju skompilowany, rwnie doczony
  jest do Slackware 2.2 -- postaraj si zdoby wersj skompilowan,
  dokument niniejszy nie zawiera pomocy w instalacji i konfiguracji
  Perla.

  33..22..  IInnssttaallaaccjjaa ii rroozzrruucchh

  Nie zapomnij o zaoeniu grup ,,junk'' i ,,control'' -- bez nich
  program innd nie ruszy. Bdziesz musia zaoy je rcznie, poniewa
  polecenie ctlinnd zakada, e demon innd jest ju uruchomiony. Po
  wystartowaniu tego demona utwrz poleceniem ctlinnd newgroup ... ...
  katalog do skadowania newsw. Szczegw szukaj w podrczniku
  systemowym (man ctlinnd).


  Teraz musisz zmodyfikowa plik /etc/news/newsfeeds -- dziki temu INN
  utworzy plik w katalogu /usr/spool/news/out.going/; plik ten
  wykorzystywany bdzie przez zamieszczony poniej skrypt perlowy do
  publikowania napisanych off-line artykuw. Informacje na temat
  zawartoci /etc/news/newsfeeds znajdziesz w dokumentacji INNa;
  przeczytaj te odpowiedni stron podrcznika systemowego (man
  newsfeeds). WWAANNEE:: wpisy w /etc/news/newsfeeds powinny by umieszczone
  w takiej kolejnoci, aby pierwszym polem w pliku
  /usr/spool/news/out.going/$NEWSFEED byy pene cieki do artykuw,
  ktre chcesz wysa. Jeli pierwsze pole bdzie zawierao co innego,
  skrypt bdzie prbowa wysa na newsy owo ,,co innego'' zamiast
  Twoich artykuw, co z pewnoci wywoa niepodane efekty.

  Nie zapomnij o zablokowaniu w pliku control.ctl moliwoci
  automatycznego zakadania nowych grup. Jeli tego nie zrobisz, to w
  miar napywania z nadrzdnego serwera wiadomoci kontrolnych liczba
  ciganych grup bdzie si powikszaa, co spowoduje zwikszenie
  obcienia i spowolnienie twojego systemu -- a w niniejszym HOWTO
  chodzi przecie o co zupenie przeciwnego.
  Wejd do wybranego przez siebie katalogu i wykonaj w nim polecenie
  touch -t $WCZORAJ lastget
  Zamiast $WCZORAJ uyj cigu oznaczajcego dzie wczorajszy (w formacie
  opisanym w podrczniku systemowym (man touch)).

  Umie poniszy skrypt w tym katalogu i nadaj mu prawa wykonywania.
  Zmie $NEWSPATH na katalog, w ktrym zainstalowae INNa (u mnie jest
  to /usr/lib/news). Zmie $SCRIPTPATH na ciek do katalogu, w ktrym
  umiecie skrypt (u mnie /usr/lib/news). W tym samym katalogu
  znajdowa si musi wspomniany wyej plik lastget.  Zmie $PROVIDER na
  adres serwera news, z ktrego bdziesz korzysta. Zmie $NEWSFEED na
  nazw feedu, ktrej uye w /etc/news/newsfeeds.

  Przeczytaj strony ,,inews'' i ,,nntpsend'' podrcznika systemowego,
  aby zorientowa si w dziaaniu poniszego skryptu.



















































  -----------------------------------------------------------------------------

  #!/usr/bin/perl

  ##
  ## pobierz nowe artykuly
  ##

  open(LIST, "$NEWSPATH/active")
          || die "nie moglem otworzyc listy grup do pobrania!";

  while (<LIST>) {
   @newsgroup = split(' ', $_); ## dzieli kolejne linie pliku active wg spacji,
                                ## umieszcza dane w tablicy @newsgroup
                                ## @newsgroup[0] zawiera teraz nazw grupy

    system "$NEWSPATH/bin/nntpget -f $SCRIPTPATH/lastget -n @newsgroup[0] -o -v $PROVIDER"
          || print "nie moglem sciagnac postow z grupy @newsgroup[0]\n";
    }

  close(LIST);

  system "touch $SCRIPTPATH/lastget";


  ##
  ## usun naglowek "NNTP-Posting-Host: " z postow do wyslania
  ##

  open(LIST, "/usr/spool/news/out.going/$NEWSFEED")
        || die "nie moglem otworzyc listy postow do przygotowania do wyslania";

  while (<LIST>) {
    if (@article = split(' ', $_)) {
      $article = @article[0];
      rename("$article", "$article" . '.bak');
      $backup = "$article.bak";
      open(OUTPUT, ">> $article");
      open(INPUT, "$backup");
      select(OUTPUT);
      while (<INPUT>) {
        print unless ?^NNTP-Posting-Host.*\n?
        }
      close(OUTPUT);
      close(INPUT);
      unlink("$backup");
      reset;
    }
  }
  select(STDOUT);

  close(LIST);

  ##
  ## wyslij posty
  ##

  $ENV{'NNTPSERVER'} = "$PROVIDER";

  open(LIST, '/usr/spool/news/out.going/$NEWSFEED')
          || die "nie moglem otworzyc listy postow do wyslania";

  while (<LIST>) {
    if (@article = split(' ', $_)) {
      $article = @article[0];
      system "inews -h $article";
      }
    }

  close(LIST);

  ------------------------------------------------------------------------------



  33..33..  SSppoossbb uuyycciiaa

  Powiedzmy, e nazwae powyszy skrypt ,,foonews''. Przy nastpnym
  poczeniu z sieci wykonaj polecenie $SCRIPTPATH/foonews.  Jeli
  przez ekran zaczn przewija si identyfikatory wiadomoci (Message-
  ID), to znaczy, e wszystko dziaa jak powinno. By moe bdziesz
  musia poczeka kilka sekund na pojawienie si pierwszych Message-ID.
  Po zakoczeniu tej operacji powiniene mie na dysku wszystkie
  wiadomoci wysane na newsy od czasu ostatniej modyfikacji pliku
  $SCRIPTPATH/lastget, a wszystkie napisane przez Ciebie posty powinny
  by wysane do serwera, z ktrym si czye; serwer rozpropaguje te
  wiadomoci dalej. Po wszystkim plik $SCRIPTPATH/lastget bdzie mia
  dzisiejsz dat ostatniej modyfikacji; jutro, kiedy ponownie
  uruchomisz ,,foonews'', skrypt cignie newsy wysane na newsy midzy
  t dat, a momentem uruchomienia skryptu.

  Bdziesz musia rcznie usuwa zawarto pliku
  /usr/local/news/out.going/$NEWSFEED. Umylnie nie dopisaem tej
  funkcji do skryptu, eby mc sprawdzi, czy moje artykuy rzeczywicie
  zostay wysane... i jako nie zabraem si jeszcze do
  zautomatyzowania tego zadania.  Po pierwszym uruchomieniu skryptu
  najpierw sprawdziem, czy artykuy zostay wysane, a dopiero potem
  usunem zawarto tego pliku; moesz zrobi tak samo.

  Jeli poprawnie skonfigurowae INNa, to skrypt
  $NEWSPATH/bin/news.daily zajmie si poprawnym dziaaniem caej
  konstrukcji.

  W tej chwili wszystko robi rcznie, jednak nic nie szkodzi na
  przeszkodzie, aby proces ten zautomatyzowa. Kilka wpisw w cronie
  powinno zaatwi spraw.

  I ostatnia uwaga: wcale nie uwaam, e mj skrypt jest elegancko
  napisany, ani e sposb jest idiotoodporny i niezawodny. Ale SOA#1 --
  u mnie dziaa -- wic postanowiem si nim podzieli.

  44..  PPooddzziikkoowwaanniiaa......

  ...dla wszystkich, dziki ktrym Linux jest taki fajny!

  _K_e_n_t _L_e_w_i_s
  kent@fiona.umsmed.edu

  55..  OOdd ttuummaacczzaa

  55..11..  IInnnnee rrddaa iinnffoorrmmaaccjjii

  Polskie tumaczenia pozostaych dokumentw HOWTO znajduj si pod
  adresem <http://www.jtz.org.pl/>. Z pewnoci szczeglnie zainteresuje
  Ci INN+SUCK mini HOWTO
  <http://www.amg.gda.pl/~michu/uploads/inn+suck-Mini-HOWTO.pl.txt>,
  ktre znacznie poszerza informacje zawarte w niniejszym dokumencie.
  Problem czytania newsw off-line rozwiza moesz te za pomoc
  odpowiedniego czytnika, wicej na ten temat znajdziesz w FAQ grupy
  pl.news.czytniki <http://www.geocities.com/tsca.geo/czytniki/>.


  55..22..  OO ttuummaacczzeenniiuu

  Dokument oryginalny dostpny jest wycznie w formacie txt (patrz
  <http://sunsite.unc.edu/LDP/>); znaczniki sgml i podzia na rozdziay
  pochodz ode mnie.

  Copyright for the translation:
  (c) 2001 by Tomasz `tsca' Sienicki, tsca@edb.dk


























































