Menu
Strona główna
Hacking
Programowanie
Telefonia Komórkowa
Kody do Gier
Linux
Dlaczego?
Programowanie w Delphi
Mapa strony
 Programy
Systemy
Artykuły PDF

Security

Skanery
Sniffery
Security

Windows

Użytkowe
Przegl?darki graficzne
Kodeki
Narzędzia plikowe
Narzędzia dyskowe
Narzędzia systemowe
Sterowniki
Szyfrowanie danych
Zarz?dzanie hasłami
Zarz?dzanie rejestrem
?aty i Patche
Zarz?dzanie pamięci?
Synchronizacja czasu
Nagrywanie płyt
Free Antivirus (Darmowe Antyvirusy)
Sterowniki
Obróbka d?więku
Edycja wideo

Internetowe

Bezpiecze?stwo
Programy P2P
Komunikatory
Dodatki do przegl?darek
Klienty poczty elektronicznej
Narzędzia Antyspamowe
Przegl?darki grup dyskusyjnych
Przegl?darki Offline
Serwery poczty elektronicznej
Telefonia komórkowa
Wyszukiwarki internetowe
Zdalny dostęp
Cybernianie
Klienty FTP
Narzędzia internetowe
Prywatnośc
Przegl?darki internetowe
Serwery FTP
Serwery WWW
Wspomagacze ści?gania
Zarz?dzanie sieci? lokaln?

Tuning Systemu

Diagnostyka i testowanie
Inne
Rozszerzenia pulpitu
Tapety na pulpit
Tuning Systemu
Ikony
Powłoki
Tuning sprzętu
Wygaszacze ekranu

Programowanie

Kompilatory
Biblioteki i komponenty
Bazy danych
Edytory programistyczne
?rodowiska programistyczne
Debugery
Tworzenie wersji instalacyjnych

Webmastering

Użytkowe
Kursy

Linux

Użytkowe
Internetowe
Multimedialne

Programy biurowe

Programy dla firm
Pakiety biurowe
Administracja
Edytory tekstu
Grafika prezentacyjna
Kadry i płace
Wspomaganie projektowania
Zarz?dzanie projektami
Bazy danych
Finanse i księgowośc
Handel
Programy ewidencyjne
Zarz?dzanie informacj? osobist? (PIM)
 Download GRY
Pelne Wersje GIER
 Artykuły > Linux > 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/.

komentarz[1] |

Copyright Š 2006 - 2007 E-comet.info. Wszelkie prawa zastrzeżone.

programy,artykuły,gry online,teledyski,filmiki,smieszne reklamy,sterowniki,kodeki,programy,program,download, downloads,security,bramka sms, teledyski,antywirusy,darmowe free program,programy p2p,tapety,programy biurowe,programy dla firm,narzędzia dyskowe,edytory,gry strategiczne,gry przygodowe,gry sportowe, symulatory, gry rpg,gry karciane, gry zrecznosciowe. Zapraszamy.
0.066 |