Feeder - skompresowane newsy
Feeder - skompresowane newsy
Wstęp
Czy czasami zastanawiałeś się jak można przyspieszyć ściąganie
setek listów, które codziennie trafiają na grupy dyskusyjne? Zapewne
przychodziły Ci do głowy pomysły o zmianie serwera newsowego (co i tak
nie dawało oczekiwanych efektów :(), a co ambitniejsi kompresowali całą
transmisję przez ssh. Rozwiązanie które chce Wam zaproponować jest o wiele
bardziej efektywne, a co za tym idzie w bardzo szybkim czasie ściągniemy
codzienną porcję newsów. W jednym poście na pcol Andrzej Radecki
(autor serwisu) napisał tak:
" Od ponad roku prowadzimy serwis udostępniający newsy w postaci
skompresowanych paczek. Głównym jego przeznaczeniem jest skrócenie czasu
pobierania newsów, z czego wywiązuje się on bardzo dobrze. Myślę, że docenią
to ludzie łączący się za pomocą dialup'u TP S.A. ;-) Wynika to nie tylko
z samej kompresji ale również znacznego zmniejszenia ilości zapytań
serwera oraz zrównoleglenia pobierania plików. Pobieranie i kompresowanie
newsów odbywa się 4 razy dziennie przy czym nowo tworzonym paczkom nadawane
są nazwy będące złożeniem nazw grup i kolejnych numerów uruchomienia
skryptu 'serwerowego'. "
Ja tylko dodam, ma całkowitą rację! Za pierwszym razem gdy ściągałem
newsy to przez 4,5 minuty połączenia modemowego z TPSA ściągłem 1106 listów!
robiąc oczywiście w tym czasie inne internetowe rzeczy. Jeśli myślisz, że
warto skorzystać to czytaj dalej.
Jak to działa?
Autorzy serwisu
4 razy dziennie udostępniają spakowane bzipem newsy. Ty za pomocą odpowiednich
skryptów ściągasz je na swój dysk lokalny, a dalej podajesz je do odpowiednich
programów - serwera news inn, leafnode+ lub slrnpull`a - programu ściągającego posty
dla slrn. Następnie odczytujesz je swoim ulubionym linuxowym programem
(i tak wiem, że jest to slrn :))
W tym dokumencie opiszę tylko jak korzystać z serwera inn. Slrnpull nie jest
moją mocną stroną więc, jeśli chcesz z niego korzystać musisz sam się
nim pobawić. Do Leafnode+ są już napisane odpowiednie skrypty, wkrótce
będą dostępne w projekcie.
Trochę o autorach
Andrzej Radecki radecki@wpk.p.lodz.pl
- szef całego przedsięwzięcia, pomysłodawca,
Gotar
gotar@priv0.onet.pl - skrypty do slrnpull`a,
Radek Zieliński - skrypt prelowy pracujący na serwerze,
Radek Kojecki - to na jego serwerze działa projekt,
Daniel Mróz - pisze dokumentacje,
Zerknij po feedera
Pierwszą rzeczą jaką powinnieneś zrobić to zajrzenie na stronę domową
projektu: http://www.media-com.com.pl/~radecki/.
Możesz tam znaleźć statystyki ściąganych grup newsowych (czasami skrypt
to obsługujący potrafi płatać figle :), ich listę
oraz co najważniejsze skrypty potrzebne do obługiwania projektu. Ściągniesz
je w formacie .src.rpm z katalogu
http://www.media-com.com.pl/~radecki/scripts/.
Jak je zainstalować przeczytasz w artykule o
instalacji oprogramowania. Jeśli jednak nie używasz rpm`a (tak jak ja, heh :)
wystarczy, że wyciągniesz odpowiednie pliki i umieścisz je we właściwych
miejscach. Skrypty idą do /usr/bin, tworzysz /var/spool/news/feeder i
umieszczasz w nich pliki grupy i last.
Konfiguracja i używanie
W /usr/bin znajdziesz 7 skryptów które obsługują projekt. Niektóre służą
do tego samego :) inne są wykorzystywane w różnych opcjach (zależy z jakich
programów korzystamy). Do ściągania służą: suckem-sh i suckem-perl,
oba robią to samo, drugi napisany w perlu jest jeszcze w fazie rozwojowej,
ale podobno całkiem stabilny. feed2inn przesyła i rozpakowywuje skrypty
do serwera inn`a, a dwa funkcjonalnie rownoważne do spoola programu slrn -
feed2slrnpull_a i feed2slrnpull_b.
Dodatkowo w paczce znajduje się skrypt
'news.send' do wysyłania newsów z inn'a (klasycznie - za pomocą rposta)
i filtr nagłówków do niego - 'news.put'.
Plik konfiguracyjny to /var/spool/news/feeder/grupy gdzie zapisujemy
nazwy grup, które będziemy chcieli pobierać np.
pl.comp.os.linux
pl.news.czytniki
Oczywiście pełną listę grup znajdziemy na stronie projektu.
Poza tym w pliku list zapisywane są numery ściąganych feedów (paczek)
a w last numer ostatnio ściągniętego.
Znowu podeprę się Andrzejem:
" Niedawno napisałem perlowy skrypt do ściągania newsów. Jest to jak na
razie konstrukcja eksperymentalna (choć już całkiem stabilna
- ja jej używam na co dzień). Cechą szczególną tego skryptu jest
to że nie używa on plików 'grupy' i 'last' lecz jednego pliku 'groups'
umożliwiającego precyzyjniejszą kontrolę nad tym co i od jakiego miejsca
ściągamy. Format tego pliku jest opisany w samym skrypcie. Dodatkowo
posiada on kilka innych feature'ów - czytelniejsza prezentacja wyników.
Powinien być też (takie jest założenie) bardziej odporny na zerwanie
połączenia od wersji napisanej w bashu."
Mowa tu oczywiście o skrypcie ściągający suckem_perl, którego możesz
używać do ściągania feedów. Ja jednak preferuje suckem_sh (napisany w bashu),
ale to tylko moje przyzwyczajenia.
Jeśli skonfigurowaliśmy feedera to teraz wydając polecenie suckem_sh
lub suckem_perl ściągniemy interesujące nas paczki. Dalej musimy wepchnąć
je do programu inn lub slrnpull (poczekaj aż skonfigurujemy inn`a w
następnym punkcie) poleceniem feed2inn lub dla slrnpull feed2slrnpull_a
lub feed2slrnpull_b.
Serwer news - inn
Sam feeder _tylko_ ściaga newsy, Ty musisz jeszcze postawić coś
z czego program do newsów będzie je czytał - u mnie jest to serwer
inn (może być slrnpull - na razie nie będzie jego opisu, bądź
coś innego jednak na razie nie ma jeszcze skryptów do programów innych
niż powyższe). Zainstaluj inn`a z rpm`a, tgz lub źródełek. Zadbaj także
aby na twoim komputerze znalazł się pakiet cleanfeed. Edycji poddamy
plik konfiuracyjny inna. W /etc/news/newsfeed dopiszemy:
tpnet::H1:
i do sekcji ME akceptowanie polskich grup czyli pl
ME\
:*,@alt.binaries.warez.*,!junk,!control*,!local*,!foo.*\
/pl,world,usa,na,gnu,bionet,pubnet,u3b,eunet,vmsnet,inet,ddn,k12\
::
UWAGA: wystarczy dopisać tylko pl (3 linijka) pozostałe już są
w standardowej konfiguracji inn`a! Powtórzenie tego wpisu powoduje
błąd w konfiguracji programu.
Uruchamiamy serwer inn poleceniem inndstart i tworzymy nowe grupy
na serwerze (takie same jak w pliku grupy feedera). Robimy
to poleceniem:
ctlinnd newgroup nazwa.dodawanej.grupy
# np. ctlinnd newgroup pl.comp.os.linux
Teraz wpychamy do inna posty z feedera: feed2inn.
Co dalej?
Mamy już na własnym lokalnym serwerze wiadomości. Teraz wystarczy je
tylko odczytać. Ja polecam do tego celu slrn. Nie będę się tutaj wdawał
w szczegółową konfiguracje, jednak podam kilka uwag. Slrn korzysta z
serwera, którego nazwę (adres) podamy w zmiennej NNTPSERVER, w naszym
wypadu będzie to serwer lokalny czyli 127.0.0.1. Zrób (dopisz do
/etc/profile) export NNTPSERVER=127.0.0.1. Przy pierwszy uruchomieniu
slrn próbuje pobrać listę grup. Tworzymy ją wydając polecenie:
slrn -f /home/user/.newsrc -create
Na ekranie powinny pojawić się wszystkie dostępne na serwerze grupy.
Te które chcemy czytać musimy zasubskrybować poprzez użycie klawisza
s.
Używanie slrn i slrnpull
Jeśli nie mamy ochoty by stawiać serwer neiws inn, gdy
tylko my korzystamy ze ściągniętych feedów i używamy czytnika
news o nazwie slrn warto zainteresować się programem dołączanym
do tego czytnika o nazwie slrnpull. W rzeczywistości służy on
do ściągania postów z newsgrup, ale dzięki Gotarowi możliwe jest
go używanie w połączeniu razem z feederem.
Zaczniemy od konfiguracji samego slrnpulla. W pliku
/var/spool/slrnpull/slrnpull.conf edytujemy jego konfiguracje.
Wystarczy, że dodamy własne grupy dyskusyjne:
pl.comp.os.linux
pl.comp.os.linux.sieci
Teraz nadszedł czas, aby zmusić slrn do korzystania z slrnpull.
Ważne, aby w pliku konfiguracyjnym slrn (.slrnrc) znalazły się
następujące wpisy:
set spool_inn_root "/var/spool/slrnpull"
set spool_root "/var/spool/slrnpull/news"
set spool_nov_root "/var/spool/slrnpull/news"
set read_active 1
set use_slrnpull 1
Oczywiście ścieżki muszą być poprawne.
Teraz prześlemy spakowane paczki ściągnięte feederem do spoola
slrnpull. Możemy to zrobić za pomocą dwóch równorzędnych skryptów:
feed2slrnpull_a i feed2slrnpull_b. Którego użyjemy zależy tylko
i wyłącznie od nas. Rozpakowane posty pojawią się w katalogu:
/var/spool/slrnpull/news/nazwa/grupy.
Do czytania newsów musimy użyć programu slrn. Aby korzystał
z slrnpull wywołujemy go parametrem:
slrn --spool
Jeśli używamy slrn tylko w ten sposób warto dodać alias do /etc/profile:
alias slrn='slrn --spool' i wywoływać czytnik przez wpisanie slrn.
Wysyłanie postów na grupy dyskusyjne przy korzystaniu z slrnpull
nie stwarza żadnych trudności. Musimy mieć wspomnianą już opcję
w pliku konfiguracyjnym slrn`a (.slrnrc):
set use_slrnpull 1
Wysyłane artykuły umieszczane są w katalogu /var/spool/slrnpull/out.going
i dlatego powinniśmy nadać temu katalogu odpowiednie prawa do zapisywania:
chmod ugo+rwxt out.going
Komendę tę wydajemy z lini poleceń, gdy znajdujemy się w katalogu
/var/spool/slrnpull/
Gdy chcemy wysłać w świat nasze posty wywołujemy slrnpull z opcją:
slrnpull --post-only
Dzięki temu slrnpull nie będzie pobierał nowych wiadomości (tym zajmuje
się feeder), a jedynie wyśle nasze.
Także i tutaj warto utworzyć w /etc/profile alias:
alias slrnpost='slrnpull -d /var/spool/slrnpull/ --post-only'
Jeśli go utworzymy wystarczy wpisać slrnpost by wysłać newsy.
UWAGA: Musisz określić z jakiego serwer news slrnpull
ma korzystać. Odpowiedzialna jest za to zmienna NNTPSERVER.
Ustawiamy tę zmienną poleceniem (dla powłoki bash):
export NNTPSERVER=news.vogel.pl
gdzie news.vogel.pl jest naszym wybranym serwerem news. Aby nie wpisywać
tej zmiennej za każdym razem gdy się ponownie zalogujemy na konto,
warto dodać ją do /etc/profile:
NNTPSERVER=news.vogel.pl
export NNTPSERVER
Grupa dyskusyjna. Uwagi końcowe.
Możesz zapisać się na grupę dyskusyjną poświęconą feederowi
feed-pl@egroups.com,
(zapisy na:
feed-pl-subscribe@egroups.com). Uwagi kierujcie do Andrzeja
lub Gotara (skrypty do slrnpulla), adresy na górze artykułu.
Serwis jest widoczny także pod adresem
ftp://ftp.media-com.com.pl/pub/newsy/.
2k Artur Pęczak arturoza@send.pl
13.10.2000 16:00
Wyszukiwarka
Podobne podstrony:
Kyocera Paper Feeder PF 30 Parts ManualFeeder Morning LifeKyocera Paper Feeder PF 8 Parts ManualFeeder Love PollutionBee Hive miller feederKyocera Paper Feeder PF 34 Parts ManualBird Feeder Outdoor Wild Bird FeederKyocera Paper Feeder PF 7 Parts ManualFeeder TenderKyocera Paper Feeder PF 1 Parts ManualFeeder Just the ay i m feelingBird Feeder 3Kyocera Paper Feeder PF 20 Parts ManualKyocera Paper Feeder PF 5 Parts Manualwięcej podobnych podstron