2024. április 27., szombat

Gyorskeresés

Útvonal

Cikkek » Számtech rovat

Linux letöltőgép recept

  • (f)
  • (p)
Írta: |

Letöltőgép recept. Hozzávalók: számítógép, ubuntu, rtorrent, apache, samba. Elkészítési idő: 0,5-1 óra.

[ ÚJ TESZT ]

Linux letöltőgép

Először is tisztázzuk, hogy mit várunk el a rendszertől:
- töltse le a torrenteket
- a fájlokat windows megosztáson keresztül lehessen elérni
- egy weboldal a torrentek kezeléséhez

Az egész alapja legyen egy Ubuntu 8.04 lts server (Ubuntu, mert sokan használják, ezért könnyű hozzá segítséget kapni, ráadásul ha belefutunk egy problémába, szinte biztos nem mi leszünk az elsők, így már jó eséllyel a megoldást is megtalálta valaki más; 8.04 lts mert hosszú életciklusú kiadás lévén nem nagyon fognak változni a csomagok; és server mert nincs szükségünk a desktop csili-vilire, ami csak a memóriát és a processzort fogyasztaná - az alábbi konfiguráció kb 30MB memóriát használ).

Tehát tegyük fel, hogy a fenti gép felinstallálva vár minket (erről rengeteg tutorial található a neten, de mivel next-next-finish bonyolultságú, ezért önállóan is könnyen felrakható). A gép neve legyen torrent, a felhasználóé pedig pistike (született Vér István).

Ha még nincs ssh szerver installálva, akkor kezdjük azzal.

sudo apt-get install openssh-server

Ezután már el is süllyeszthetjük a gépet a kamrába/pincébe/garázsba :)


rtorrent

A következő lépés az rtorrent felrakása.

sudo apt-get install rtorrent

Egy példa konfigurációt a /usr/share/doc/rtorrent/examples/rtorrent.rc helyen találunk (illetve inkább egy vázat, mert minden érték ki van benne kommentezve). Hozzuk létre a saját konfigurációs fájlunkat:

nano ~/.rtorrent.rc

és állítsuk be a következőket:

# Nem szeretnénk, hogy a teljes kimenő sávszélt elvigye a seed (KiB)
upload_rate=500
# A még letöltés alatt levő fájlok itt tanyáznak
directory=/home/pistike/torrent/.downloading/
# Az rtorrent itt tartja nyilván, hogy melyik torrenttel hol tart.
session=/home/pistike/torrent/.downloading/rtorrent.session/
# Ha ide másolunk egy torrentet, akkor az rtorrent elkezdi azt letölteni
schedule=watch_directory,5,5,load_start=/home/pistike/torrent/watch/*.torrent
# Ha letöröljük, akkor leállítja
schedule=untied_directory,5,5,stop_untied=
# A kész torrenteket az átmeneti könyvtárból a végleges helyükre tesszük
on_finished=move_complete,"execute=mv,-u,$d.get_base_path=,/home/pistike/torrent/;d.set_directory=/home/pistike/torrent/"
# Ezeket a portat használjuk. A tűzfalon engedélyezni kell a port-forwardot!
port_range=6890-6999
# Az scgi porton keresztül fogunk kommunikálni a web szerverrel
scgi_port=127.0.0.1:5000
# Engedélyezzük a titkosított kapcsolatokat, de nem erőltetjük a dolgot
encryption=allow_incoming,enable_retry,prefer_plaintext

Ctrl-O -val mentsük el, majd Ctrl-X -szel lépjünk ki. Hozzuk létre a könyvtárakat

mkdir ~/torrent
mkdir ~/torrent/.downloading/
mkdir ~/torrent/.downloading/rtorrent.session
mkdir ~/torrent/watch

Ha most a ~/torrent/watch könyvtárba másolunk egy torrentet

wget -P ~/torrent/watch http://torrent.ubuntu.com/simple/jaunty/desktop/ubuntu-9.04-desktop-i386.iso.torrent

és elindítjuk az rtorrentet

rtorrent

akkor pár másodperc (5-öt állítottunk be) után látnunk kellene, hogy már töltődik is lefele.

és elindult

Ctrl-Q -val ki tudunk kilépni. Tehát már működik a letöltés, de még nekünk kell kézzel elindítani a programot, és ha kilépünk, akkor le is áll. Tehát indítsuk el daemonként! Ehhez szükségünk lesz a screen nevű csomagra

sudo apt-get install screen

ami virtuális képernyőket tud futtatni, és ami a számunkra lényeges, hogy ezeket kijelentkezés után is megtartja. Töltsük le az indítófájlt

wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh

állítsuk be a usert. Lustáknak: :)

sed -i 's/^user="user"$/user="pistike"/g' rtorrentInit.sh

Pakoljuk a helyére

sudo mv rtorrentInit.sh /etc/init.d/rtorrent

Tegyük futtathatóvá

sudo chmod a+x /etc/init.d/rtorrent

és állítsuk be, hogy a rendszerrel együtt induljon

sudo update-rc.d rtorrent defaults

Indítsuk el most kézzel

sudo /etc/init.d/rtorrent start

Nézzük meg, hogy tényleg fut-e (bár elvileg kiírta, hogy elindult, de azért menjünk biztosra)

ps ax|grep rtorrent

Három sort kellene látnunk:

rtorrent tényleg futik

Ebből nekünk az első érdekes. Ez azt mutatja, hogy az rtorrent fut a háttérben. Tehád eddig minden remek. Nézzük meg, hogy mit csinál.

screen -r rtorrent

rtorrent már a screen-ben

Ez gyakorlatilag ugyanaz a képernyő, mint az előbb volt (csak már haladt egy kicsit). Fontos, hogy innen ne a Ctrl-Q billentyűvel lépjünk ki, mert az az rtorrent-et zárná be, amit nem akarunk. A screen-ből a Ctrl-A d billentyűkkel tudunk kilépni. Ha le akarjuk állítani az rtorrentet, azt a

sudo /etc/init.d/rtorrent stop

paranccsal tehetjük meg, de szerintem egyelőre hagyjuk életben :)


samba

Tehát van most már torrent szerverünk, ami fut a háttérben, de még csak konzolon férünk hozzá, és a fájlok (torrentek és a letöltöttek) kezelése sem valami kényelmes. Ahhoz, hogy a fájlokat kényelmesen elérhessük, szükségünk lesz a samba nevű csomagra. Ezzel létre tudunk hozni windowsos megosztásokat, amikkel sokkal könnyebb hozzáférni a fájlokhoz. Tehát telepítsük fel:

sudo apt-get install samba

Engedélyezzük, hogy samba-n keresztül is lássuk a saját könyvtárunkat. Ehhez

sudo nano /etc/samba/smb.conf

majd adjuk hozzá a fájlhoz a következőket

[homes]
comment = Home Directories
browseable = yes
read only = no

ezután engedélyeznünk kell a felhasználót

sudo smbpasswd -e pistike

Adjunk meg egy jelszót. Már csak értesíteni kell a samba-t, hogy megváltoztak a körülmények. Ehhez indítsuk újra

sudo /etc/init.d/samba restart

Most már a távoli gépen is felcsatolhatjuk a meghajtót. Ha ez egy windows, akkor

net use t: \\torrent\pistike

majd adjuk meg felhasználónevet/jelszót. Ezzel létrejött egy t meghajtó. A torrent fájlokat a t:\torrent\watch könyvtárba kell pakolni, a letöltött fájlok pedig a t:\torrent helyre kerülnek.


rtgui

Most már sokkal kényelmesebb kezelni az egészet, és végülis teljesen jól el is végzi a dolgát a szerver, de nincs hozzá csili-vili felület. Hát rakjunk rá! Ehhez először is szükségünk lesz egy web szerverre, meg hozzá egy pár modulra:

sudo apt-get install apache2 php5 php5-xmlrpc libapache2-mod-scgi

Ezután állítsuk ba az apache-ot. Ehhez a konfig fájlba

sudo nano /etc/apache2/sites-enabled/000-default

szúrjuk be az alábbi két sort (a záró VirtualHost tag elé)

LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

lustáknak: :)

sudo sed -i 's/<\/VirtualHost>/ LoadModule scgi_module \/usr\/lib\/apache2\/modules\/mod_scgi.so\n SCGIMount \/RPC2 127.0.0.1:5000\n<\/VirtualHost>/g' /etc/apache2/sites-enabled/000-default

egy előtte/utánna kép, csak hogy egyértelmű legyen

mi változott az apache configban

Töltsük le a frontendet

wget http://rtgui.googlecode.com/files/rtgui-0.2.7.tgz

majd csomagoljuk ki

sudo tar xvzf rtgui-0.2.7.tgz -C /var/www

A példa konfiguráció kiindulásnak jó lesz

cp /var/www/rtgui/config.php.example /var/www/rtgui/config.php

Állítsuk be a könyvtárakat

sed -i 's/^$watchdir=.*/$watchdir="\/home\/pistike\/torrent\/watch\/";/g' /var/www/rtgui/config.php
sed -i 's/^$downloaddir=.*/$downloaddir="\/home\/pistike\/torrent\/";/g' /var/www/rtgui/config.php
sed -i 's/^$rtguiurl=.*/$rtguiurl="http:\/\/torrent\/rtgui\/";/g' /var/www/rtgui/config.php

A

grep -E 'watchdir|downloaddir|rtguiurl' /var/www/rtgui/config.php

paranccsal ellenőrizni tudjuk, hogy jól lett-e az eredmény. Ilyet kellene kapnunk:

rtgui config.php

A watchdir-t írhatóvá kell tennünk az apache számára is

chmod 777 ~/torrent/watch

És van egy bug is a felületen (nem lehet torrentet hozzáadni), amit a leírás szerint javítottak, de a gyakorlatban nem így tűnik. Úgyhogy ha szeretnénk használni a web felületről a torrent hozzáadást, akkor ki kell javítanunk (miután feltöltöttük a fájl, meg kell változtatunk a hozzáférési jogait, hogy más is tudja olvasni). Ezt a lépést csak akkor kell végrahajtani, ha 0.2.7-es rtguit-rakjuk fel, a későbbi verziókban ezt már lehet, hogy javították!

awk '//{print}/move_uploaded_file/{print " @chmod($watchdir.basename($_FILES[\47uploadtorrent\47][\47name\47]), 0777);"}' /var/www/rtgui/control.php>control.php
mv control.php /var/www/rtgui/control.php

Valami ilyesmi az elvárt eredmény

rtgui patch

Már csak az apache újraindítása van hátra

sudo /etc/init.d/apache2 restart

És ta-da-da-daaaam

így néz ki a webes felület


disclaimer

A biztonsági részével nem foglalkoztam, feltételeztem, hogy a gépet csak belső hálózatról, megbízható, alapvetően jóindulatú emberek érik el. Ha csak ez egyik feltétel is nem teljesül, akkor mindenképpen foglalkozni kell a kérdéssel!

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.