rTorrent — P2P w konsoli!
29 kwietnia 2007, Treadstone
W tym artykule opiszę klienta Bittorrenta działającego w środowisku tekstowym – rTorrent. Będzie on z pewnością przydatny osobom, które komputer dzielą z innymi domownikami, gdyż (przy pomocy screena i skryptów startowych) pozwala na ściąganie plików niezależnie od zalogowanego użytkownika. Co więcej, ponieważ jest to klient tekstowy (działa pod ncurses), można równie dobrze podejrzeć jego pracę poprzez dowolnego klienta SSH, przeglądarkę WWW (ajaxterm), bądź nawet komórkę, co opisałem w moim poprzednim artykule o MidpSSH. Nie bez znaczenia jest też minimalne, w porównaniu do innych graficznych klientów, zajęcie zasobów sprzętowych. Jak podaje Wikipedia i oficjalna strona programu, dzięki mocno zoptymalizowanemu kodowi, rTorrent potrafi ściągać pliki kilkakrotnie szybciej niż oficjalny klient. A więc czego chcieć więcej? Do dzieła!
Co nam będzie potrzebne?
Przede wszystkim potrzebne będzie kopia rTorrenta oraz biblioteki libtorrent. Obydwie rzeczy możemy ściągnąć z oficjalnej strony, lecz warto sprawdzić, czy nie znajdują się one w repozytorium naszej dystrybucji. Potrzebny będzie też nam program screen, który na pewno będzie w oficjalnych repozytoriach.
Gdy już mamy w systemie zainstalowane pakiety z tymi programami, możemy przystąpić do uruchomienia programu. Robimy to wpisując po prostu rtorrent w konsoli. Co się nam pokaże, to opisałem poniżej. Z pewnością poczujecie się trochę zagubieni, ale postaram się wyjaśnić wszelkie wątpliwości.
Opis okna
![]()
Rys.1 rTorrent - zaraz po uruchomieniu
![]()
Rys.2 rTorrent - opis podstawowych funkcji
Te dwa screenshoty przedstawiają główne okno rTorrenta uruchomionego na moim komputerze. Na pierwszym jest on pokazany tak, jak wygląda, gdy jest uruchomiony pierwszy raz, a na drugim, gdy ma już plik konfiguracyjny oraz dwa aktywne transfery.
Plik konfiguracyjny
Pierwsze pytanie pewnie brzmi – „jak dodawać nowe torrenty?” Już śpieszę z odpowiedzią: torrenty w naszym wypadku będą dodawały się same. „Jak to możliwe?” Otóż zaraz się przekonacie
Magia tkwi w pliku konfiguracyjnym rTorrenta, który znajduje się w katalogu domowym pod nazwą .rtorrent.rc. Powinniśmy go teraz utworzyć. Przykładowy, wraz z opisem wszystkich użytych funkcji, znajduje się poniżej.
# W tym katalogu będą zapisywane ustawienia torrentów;
# oraz plik, który blokuje wielokrotne załączanie rTorrenta;
session = /home/lukasz/dane/download/torrenty
# Gdzie będą ściągane pliki;
directory = /home/lukasz/dane/download/torrenty
# Domyślna prędkość wysyłania (0 dla nieograniczonej);
upload_rate = 40
# Domyślna prędkość ściągania (0 dla nieograniczonej);
download_rate = 0
# Czy rTorrent ma korzystać z UDP;
use_udp_trackers = yes
# Maksymalna liczba uploadów na jeden torrent;
max_uploads = 20
# Zakres portów z których rTorrent będzie próbował się łączyć;
port_range = 6892-6892
# Minimalna i maksymalna liczba połączeń do jednego torrenta;
min_peers=10
max_peers=400
# Przestaje wysyłać, gdy ratio wyniesie 2.0 przy przynajmniej 100MB
# wysłanych lub gdy ratio przekroczy 5.0;
schedule = ratio,60,60,stop_on_ratio=200,200M,500
# Przestaje ściągać, gdy miejsce na dysku wyniesie poniżej 20MB;
schedule = low_diskspace,5,60,close_low_diskspace=20M
# Z tego katalogu torrenty będą automatycznie dodawane do listy ściągania;
schedule = watch_directory,5,5,load_start=/home/lukasz/dane/download/torrenty/*.torrent
# Po usunięciu ściągania z listy będą usuwane pliki .torrent;
schedule = untied_directory,5,5,stop_untied=
Jeśli mamy już przygotowany plik konfiguracyjny, możemy spróbować, czy rTorrent sam pobiera pliki. W tym celu ściągamy przykładowy plik .torrent i zapisujemy go do wcześniej wybranego katalogu (u mnie był to /home/lukasz/dane/download/torrenty). Jeśli po załączeniu rTorrent plik doda się do ściągania, to jest wszystko ok. W przeciwnym przypadku, należy sprawdzić czy plik konfiguracyjny jest na pewno dobrze zrobiony, czy nie popełniliśmy literówek w edytowaniu go, oraz czy na pewno ma odpowiednią nazwę i znajduje się w naszym katalogu domowym.
Oczywiście, torrenty można też dodawać ręcznie, jak to robić opisałem na końcu tego artykułu, w klawiszologii.
rTorrent, screen i skrypty startowe
Następnym krokiem będzie dodanie polecenia uruchamiania rTorrent do skryptów startowych. W tym celu przygotowujemy mały skrypt, który dodamy do /etc/init.d. W moim przypadku wygląda on tak:
#!/bin/sh
su lukasz -c 'screen -mD sh /usr/bin/rtorrent' &
W miejsce lukasz, należy podstawić swoją nazwę użytkownika, dzięki czemu rTorrent nie będzie uruchamiany z poziomu roota.
Aby sprawić, żeby skrypt był wykonywany przy uruchomieniu komputera, należy (z poziomu roota) pozwolić mu, aby był wykonywany (chmod +x), skopiować do katalogu /etc/init.d/ oraz wydać polecenie update-rc.d plik defaults 20, gdzie plik to nazwa naszego skryptu.
Po ponownym uruchomieniu komputera, rTorrent powinien zacząć pracować. Do wywołania go musimy wpisać screen -r w terminalu. Pełen opis podstawowych i nie tylko funkcji screena znajduje się w artykule Screen - sztuczki.
Podstawowa klawiszologia
A oto podstawowe skróty klawiszowe, które na pewno przydadzą Wam się podczas pracy z rTorrentem.
^q– Wyłącza program. Wciśnięty podwójnie wymusza zamknięcie.Góra, dół– zaznacza kolejne pobierania.Lewo– wraca do poprzedniego ekranu.Prawo– przechodzi do następnego ekranua | s | d– Zwiększa globalny upload o 1/5/50 KBA | S | D– Zwiększa globalny download o 1/5/50 KBz | x | c– Zmniejsza globalny upload o 1/5/50 KBZ | X | C– Zmniejsza globalny download o 1/5/50 KB^S– Rozpoczyna pobieranie^D– Zatrzymuje aktywne pobieranie bądź usuwa zatrzymane+ | -– Zmienia priorytet pobierania wybranego torrentaBackspace– Po naciśnięciu można wpisać lokalną ścieżkę bądź URL do pliku .torrent. Obsługuje dopełnianie ścieżek za pomocą przycisku Tab, jak w bashu.
Epilog
I tutaj zbliżamy się do końca artykułu, myślę, że wiedza, którą tutaj przedstawiłem będzie dla Was przydatna. Oczywiście, nie jest to 100% możliwości rTorrenta, jednak z pewnością są to informacje, które wystarczą do sprawnej obsługi programu. Po dalsze odsyłam do systemowych manuali. Wszystkie pytania piszcie na lukiasz@gmail.com
Korekta: t_ziel
Komentarze (RSS) | Trackback (URI)




Uwaga!
Chwilowo nie można powiększać jednego obrazka.
- “dzięki mocno zoptymalizowanemu kodu” - chyba “kodowi”
- screeny są odwrotnie
To, co mi się marzy, to “demon downloadu” - połączenie, wgeta, programu do ściągania torrentów i menadżera pobierania. W tle działa mały demon czekający na zadania. Jednym poleceniem z terminala podajemy mu adresy URL plików do ściągnięcia a on zapisuje je w uprzednio skonfigurowanym katalogu. Działa w tle, jest uruchamiany przy starcie systemu, automatycznie zapamiętuje ostatnią pozycję w pliku i pozwala na dokończenie pobierania… Cudo. Zna ktoś coś takiego? Wiem że mlDonkey może działać w ten sposób, i może pobierać torrenty (a także ed2k i jakieś inne jeszcze), ale nie mogę mu podać linków z HTTP lub FTP…
rTorrent nie jest taki straszny jak mówią. Polecam.
D3X jaki ten świat mały
rTorrent jest świetnym klientem, który ciągle się rozwija. Używam go od zawsze, polecam innym.
Tego mi tutaj na wortalu brakowało
Screeny odwrócone, obrazek można już obejrzeć, za niedogodności przepraszamy
Pytanie do autora:
Czy ta linijka jest potrzebna “schedule = watch_directory,5,5,” musiałem ją wywalić bo rTorrent zgłaszał błąd ;/ bez niej się włącza.
@koziu - racja, błąd przy wpisywaniu tekstu: te dwie linijki:
schedule = watch_directory,5,5,
load_start=/home/lukasz/dane/download/torrenty/*.torrent
Powinny być w jednej, bez spacji.
Błąd już poprawiony, dzięki:)
“…pozwala na ściąganie plików niezależnie od zalogowanego użytkownika”. W jaki sposób? Jak to zrobić, żeby rTorrent chodził niezależnie od tego jaki użytkownik jest zalogowany?
Czy istnieje możliwość wyłączania niektórych plików w samych plikach torrent (tak aby tylko wybrane przez nas pliki były ściągane).
Przejdź do zakładki File list i spacją zmień priorytet (Pri) na off. Ciekawe piszesz poradniki Treadstone!
Właśnie Treadstone bardzo dobre poradniki a te możliwości screen’a to mnie zaszokowały ^^ oby więcej takich poradników
Dzięki:) Miło się czyta takie słowa:)
@LordD - dokładnie chodzi o to, że podczas startu systemu uruchamia się screen z rTorrentem w tle (nie blokując żadnego terminala), dzięki czemu program chodzi już od razu w kontekscie użytkownika, bez potrzeby uruchamiania go ręcznie. Z logowaniem miałem na myśli komputer w domu, gdzie na końcu uruchamia się graficzny menedżer logowania. Pomimo tego, kto się zaloguje, screen z rTorrentem będą już działały. Fragment przytoczony przez Ciebie poprawiłem, żeby nie budził wątpliwości - to nie sam rTorrent potrafi tak być uruchamiany i działać, ale każdy program konsolowy przy pomocy screena i /etc/init.d.
@Kaziu - to, co opisałem w artykule odnośnie screena, to funkcję, które uznałem za najciekawsze i warte opisania, sam screen posiada chociażby potężny ale i ciężki do zrozumienia system schowka i wiele innych funkcji, które mogę kiedyś opisać w następnym artykule:)
Święta racja. rTorrent to najelpszy klient torrenta jakiego kiedykolwiek używałem..
Mam pytanie dotyczące rtorrenta… jak ściągam dowolną rzecz i wyłącze rtorrenta to po ponownym włączeniu ściąga on od nowa ten plik. Czy można temu jakoś zaradzić? Z góry dziękuję za pomoc i pozdrawiam!
ps.
prośba do autora: WIĘCEJ ARTYKUŁÓW O KONSOLI!!!
session =
w konfigu widnieje?
już widnieje, mea culpa, przepraszam za kłopot…
Dzięki i pozdrawiam!
tylko nikt nie pisze czy linuxowe obsluguja ipfilter
Klient torrent świetny, choć nadal czekam na dodanie kilku opcji.
Użytkownikom choćby BitCometa szczęka opada, kiedy pokazuje im że 20 aktywnych torrentow nie musi używac wcale 300mb ramu, a 30
Czytam już któryś twój arytuł RESPECT !!!!
a ja mam pytanie odnośnie zarządzania przez www jak to się wogóle robi ??
Dodam bo może sie przydać xD
1/2 - ustawianie maksymalnej liczby połączeń dla torrenta
3/4 - minimalna liczba połączonych peer’ów
5/6 - maksymalna liczba połączonych peer’ów
t - aktualizacja trackera.
T - wymuszona aktualizacja trackera
Menu FileList (listy plików torrenta)
space - zmiana priorytetu pliku
* - zmiana priorytetu wszystkich plików
Więcej info w języku angielskim:
http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide
wie ktos mzoe jak ustawic rtorrenta, zeby w okreslonych godzinach sciagal pelna para a w innych przycinal download, zeby nie przymulac neta? krotko mowiac; w nocy idzie max a w dzien np polowe tego
Może trochę późno, ale…
schedule = throttle_1,01:00:00,24:00:00,download_rate=0
schedule = throttle_2,05:00:00,24:00:00,download_rate=25
czyli
schedule = tryb_ściągania(no z tymi nazwami niewiele zrobi), od[godzina], do[godzina], download_rate=prędkość ściągania.
no i chyba styknie
wedle manuala to cos skopales
schedule = id,start,interval,command
Call command every interval seconds, starting from start. An interval of zero calls the task once, while a start of zero calls it immediately. Currently command is forwarded to the option handler. start and interval may optionally use a time format, dd:hh:mm:ss. F.ex to start a task every day at 18:00, use 18:00:00,24:00:00.
wiec to co napisales nie bedzie od godziny do godziny tylko od godziny co ile
jakies_tam_id
w twoim przykladzie od 1 co 24h w drugim od 5 co 24h
co wyjdzie z tego np
schedule = jakies_tam_id,01:00:00,08:00:00,download_rate=25
bedzie download ustawiac na 25 od 1 w nocy co 8 godzin czyli o 1 ustawi na 25 potem o 9 ustawi na 25 potem o 17 ustawi download na 25 id mozna sobie wpisac jakie sie chce
i mozna uzyc upload_rate do ciecia upa
pozdrawiam
ale lepiej pozno niz wcale
dzieki wielkie, pozdrawiam
czy istnieje możliwość kolejkowania torrentów, chodzi o to że wrzucam do katalogu 10 torrentów, ale w aktywne są tylko 3 a reszta jest w kolejce, po zakończeniu któregoś startuje następny itd…
ja rowniez przylanczam sie do prosby o troche informacji na temat obslugi tego programu z poziomu strony www
a pozatym WIELKIE DZIEKI za artukul
Ladna tapeta

Moglbys sie podzielic?
Jasne, napisz mi na maila:)
bartek1965@tlen.pl
Dzieki
PS. Nie napisalem na maila, bo nigdzie go nie podales. Dlatego dalem swoj.
Jest podany na samym końcu artykułu:)
czy komus z Was dziala poprawnie ta opcja:
schedule = untied_directory,5,5,stop_untied=
wedlug manuala, itd. pliki *.torrent powinny byc usuwane po sciagnieciu sie danego torrenta… niestety u mnie nic takiego nie ma miejsca, o co moze chodzic?
u mnie usuwa pliki *torrent jeśli usunę download z listy (2x[ctrl]+[D])
pozatym w nowszej wersji żeby uruchomoć rtorrenta muszę zmienić linię 41 na taką
schedule = ratio,60,60,”stop_on_ratio=200,200M,500″
Witam
A ja mam
session = /home/smigacz/torrenty
i nie kontynuje mi sesji…
Co moze to powodowac?
Pozdrawiam
Smigacznr1
Program dość szybko się rozwija, testowana wersja to 6.04, obecnie najnowszą jest chyba 7.08, możliwe, że stąd te problemy
Bardzo fajny poradnik, w sumie wszystkie o konsolce sa swietne.
tamte programy tez, wyczytalem w sieci, ze rTorrent sciaga pliki tak szybko jak inne programy lub szybciej.
Mam tylko drobny problem. Uzywalem wczesniej windowsa a w nim Azureusa, potem uTorrent. Windowsa porzucilem
Tamte programy sciagaly mi z max predkoscia (mam 3mbps/512kbps) a w przypadku rTorrenta predkosc zazwyczaj nie przekracza 30-40KB/s. Wiecie co moze byc na rzeczy? Jak sobie z tym poradzic? Nie chce rezygnowac z tego programu bo poza tym jednym mankamentem jest swietny.
Z gory dziekuje za pomoc
Witam.
Pewnie poźno ale część osób pytało o interfejs web dla rtorrenta. Zebrane linki do ciekawych projektów poniżej:
http://libtorrent.rakshasa.no/wiki/UtilsList
Have fun!
Pozdr.
HF.
a ja mam takiego quiza
czy ktos wymyslil/wymysli jak zrobic zeby powiedzmy o 1 stopowalo wszystkie torentki a o 10 odpalalo sciaganie ponownie
kombinuje kombinuje i jakos nie widze ani w manualu ani w dokumentacji
stop_untied =, close_untied = on_stop = id,command,
z rzadna opcja mi nie wychodzi
urzywal ktos czegos takiego ?
Używasz schedule, składnia w man, modyfikujesz np. download/upload ratio.
np.
schedule = costam,10:00:00,24:00:00,download_ratio=2048
(podajesz w kilobajtach) o ile dobrze pamiętam
Tak samo możesz ustawić np. automatyczne dodawanie torrentów z jakiegoś katalogu/innego miejsca - ustawiasz czasy np 5,5 dla 5 sekund lub 30,30 dla sprawdzania co 30 sekund.